Регистрирайте се
Компютърната грешка при аритметичните операции
|
| Предишната тема :: Следващата тема |
| Автор |
Съобщение |
nikoleto Начинаещ

Регистриран на: 08 May 2007 Мнения: 49
    гласове: 1
|
Пуснато на: Sat Jun 02, 2007 3:37 am Заглавие: Компютърната грешка при аритметичните операции |
|
|
Хай на всички! Доколко смятате че компютрите грешат, ставали ли сте свидетели на явна компютърна грешка. Как да се преборим с нея при правенето на някоя авторска програма. Имам разни решения на този въпрос но ми е интересно Вие какво мислите защото може да кажете нещо по добро все пак ! |
|
| Върнете се в началото |
|
 |
Реклама
|
Пуснато на: Заглавие: Реклама |
|
|
|
|
|
| Върнете се в началото |
|
 |
OliGoFren Начинаещ
Регистриран на: 29 May 2007 Мнения: 57
    
|
Пуснато на: Sat Jun 02, 2007 1:33 pm Заглавие: |
|
|
Ako грешката е софтуерна, можеш да я поправиш като си попрегледаш сорс-кода на програмата и видиш къде си сбъркал. Ако е хардуерна, тоест дефектен процесор - сменяш компютъра.
Освен това за компютрите са характерни грешки, свързани със загуба на точност при работа с реални числа. Оценка за този тип грешка се дава от т.нар. число "машинно епсилон". Това е най-малкото положително число eps от съответния реален тип за дадения компютър, за което
1 + eps != 1 .
Този тип грешки са обусловени от това, че реалните числа се представят в компютъра дискретно, тоест чрез рационални числа, които са крайни двоични дроби. А всяко рационално число, чийто знаменател съдържа прост делител, различен от 2, се представя като безкрайна периодична двоична дроб. Но компютрите представят числата само като крайни двоични дроби, и оттам идва загубата на точност.
Поне аз така си мисля. |
|
| Върнете се в началото |
|
 |
Irrefutable Напреднал

Регистриран на: 15 Jul 2007 Мнения: 298 Местожителство: София
    гласове: 5
|
Пуснато на: Sat Jul 21, 2007 10:32 pm Заглавие: |
|
|
| Компютрите не грешат, грешат програмистите. |
|
| Върнете се в началото |
|
 |
xyz Напреднал
Регистриран на: 20 May 2007 Мнения: 319
     гласове: 12
|
Пуснато на: Mon Jul 23, 2007 9:04 am Заглавие: |
|
|
Хардуерни грешки се срещат изключително рядко в компютрите и това е обикновено при екстремни условия - например, ако процесорът прегрява частично. Самият процесор има вграден механизъм за автоматично оправяне на 1 грешка, а вероятността да се случат 2 е може би се случва по-рядко от веднъж на трилион години непрекъсната работа.
Не така стои въпросът със софтуера. Каквато и авторска програма да използваш, то никак не е изключено да има грешка в софтуера на операционната ти система - именно този вид грешки човек трябва да избягва. |
|
| Върнете се в началото |
|
 |
Irrefutable Напреднал

Регистриран на: 15 Jul 2007 Мнения: 298 Местожителство: София
    гласове: 5
|
Пуснато на: Mon Jul 23, 2007 11:00 am Заглавие: |
|
|
Грешки в процесора могат да вазникнат само от честотен оверклок , или от по-ниско или по-високо напрежение. При това грешките стават системни, накрая системата забива и биоса почва да недоволства.
Друг вид грешки са тези от периферните устройства ... загуба на пакети , получаване на грешни пакети , но това е ясно , дължи се на шумове в трасето и се взимат мерки когато възникне грешка да се пращат данните на ново.
Изключение правят някой протоколи за които софтуера после следи дали всичко е получено правелно, а няма хардуерен хеширане и сравняване.
xyz, та за какъв процесор по-точно говориш и какъв механизъм за оправяне на грешка има ? |
|
| Върнете се в началото |
|
 |
xyz Напреднал
Регистриран на: 20 May 2007 Мнения: 319
     гласове: 12
|
Пуснато на: Mon Jul 23, 2007 3:24 pm Заглавие: |
|
|
| Irrefutable написа: | | xyz, та за какъв процесор по-точно говориш и какъв механизъм за оправяне на грешка има ? |
Чувал съм че се прилага при съвременните процесори (примерно произведени до преди 5 години). Не мога да знам със сигурност кои модели го подържат, защото вътрешната хардуерна реализация е винаги търговска тайна. Поправянето на грешките се извършва с абсолютно същите механизми, както това се извършва при "зашумено трасе", както си писал. |
|
| Върнете се в началото |
|
 |
Irrefutable Напреднал

Регистриран на: 15 Jul 2007 Мнения: 298 Местожителство: София
    гласове: 5
|
Пуснато на: Mon Jul 23, 2007 4:16 pm Заглавие: |
|
|
Потока на данни може да се проверява дали е верен или не , когато се пращат контролни пакети.
Но за да провериш дали едно изчисление е извършено правелно или не, трябва да го направиш още 1 път и да сравниш резултата. (Особено когато става дума за процесор)
Което ме навява на мисълта че за да може да се направи проверка трябва да има две успоредни АЛУ-та и ФПУ-та които да работят и на изхода им да се сравняват стойностите.
От своя страна, това значи по-голяма шина, и двоен флагов регистър, или поне някакъв буфер. Ако има такава технология 100 на 100 не се ползва за домашни компютри
Ако попаднеш на някаква статия, хвърли един линк, да се образовам. |
|
| Върнете се в началото |
|
 |
|
|
Не Можете да пускате нови теми Не Можете да отговаряте на темите Не Можете да променяте съобщенията си Не Можете да изтривате съобщенията си Не Можете да гласувате в анкети You cannot attach files in this forum Може да сваляте файлове от този форум
|
|