Процесор - CPU - информация или какво е важно да знаете

Новости,въпроси,проблеми и решения и всичко по темата
Аватар
Neno
Respected
Respected
Мнения: 468
Регистриран на: 15 Сеп 2011, 20:50
Ник в играта: Neno
Вашият пол е: Мъж
Обратна връзка:

Процесор - CPU - информация или какво е важно да знаете

Мнение от Neno »

Изображение

Любима тема на много хора, чак се чудя какво да напиша :)

Как да разберем какъв точно ни е процесора: скоро

Като цяло процесора е преексплоатиран маркентингово. Разбирайте - излизат и ви натикват в лицето какъв бил процесора. И то даже не е ясно какъв е процесора, понеже се акцентира върху тактовата му честота. Лошите новини са, че процесора не е единственото от което зависи скоростта на един компютър, а още по-лошата новина е че тактовата му честота също не е от толкова критично значение колкото се опитват да го изкарат хората продаващи компютри.

Иам много тънки разлики между процесорите, за които е добре да знаете ако сте тръгнали да си купувате нео подобно, или пък искате да разберете какво притежавате. Ще подхвана да пиша в характерният за мен стил - от гъза към главата, после малко към краката, а накрая за десерт - бой по петичките и табаните :)

Front Side Bus(FSB)

Доста често например се пропуска да се спомене скоростта с която си комуникират процесора и шината. Да, процесора трябва да приеме информация по тази шина, да я обработи и да я върне. Ако скоростта на шината е малка - това спъва процесора - просто не може да получи достатъчно данни които да обработи, или се забавя с тяхното изпращане. Можем да си го представим като голям склад, с малки вратички.

Въпреки че скоростта поддържана от вашата система може да е например 1066MHz, няма да има никакви проблеми да се сложи процесор със FSB 667MHz или 800MHz. Просто шината няма да използва пълният си капацитет. Проблеми няма да имате и ще си живеете доволно със спъната система. Обратният вариант(процесора с по-висок FSB, шината с по-нисък) също е възможен, но там вече по-лесно се усеща че "нещо не е както трябва".

От своя страна шината пък контактува и с RAM паметта, а RAM паметта също има своя скорост. Да кажем че шината е на 1066MHz, пробутали са ви памет на 800MHz FSB и процесор на 667MHz FSB. Повече от явно е, че шината има неизпозлван капацитет, а процесора бави цялата система, понеже не може да контактува достатъчно бързо с шината. Ако сложите пък нво процесор на 1066MHz, сега паметта(която ще е все още на 800MHz) ще започне да бави системата в определени случаи(е, само във слуачаи когато процесора се обръща към паметта, което се случва доста честичко - няколко милиона пъти в секунда).

След всичко изписано тук, предполагам е очевадно, кой от процесорите е по-бърз:
1) 3,0GHz / 667MHz FSB
2) 3,0GHz / 800MHz FSB
Да, познахте - вторият е по-бърз(ако ги сравняваме инсталирани на еднакви системи). Дори нещо повече. След кратки изчисления по сложни формули които можете да намерите в интернет, на една система с 800MHz шина, 800MHz FSB памет процесор номер две ще е по-бърз в изчисленият дори от 3,25GHz/667MHz FSB. Тук вече усещам как някои хора гледат много жално(и се сещам за конкретни примери :goatee: ). Но да продължим нататък.

CPU Chаche

Кеш на процесора. Това не е отделна част, няма нищо общо с RAM паметта - намира се вътре в самият процесор и е крайно неделима(освен с брадва, но трябва да си точен :-D ) част от него. Кешът на процесора по принцип се измерва в магабайти(в по-стари варианти е в килобайти) и както ще забележите по цените - оскъпява доста крайният продукт. Тук правилото "Колкото повече - толкова повече" важи частично. Съществува положение, след което увеличаването на количеството на кеша на процесора не подобрява неговата работа. Това положение е силно специфично за всеки модел процесор, зависи от тактовата му честота, скоростта по която си "говори" с шината(FSB) и още няколко фактора.

Важно е да споменем че съществуват различни нива на кеша - L1(level 1), L2(level 2) и L3(level 3). Засега са толкова, скоро може да ни изненадат и със следващо :)

Instruction Set

"Instruction set" са един вид "указания", използвани от процесора да се третират по-сложните задачи които му биват задавани. Например, ако често се случва да се задава като задача към процесора "1+1-1+2-2=?", може да се изготви "инструкция" която да връща отговора в пъти по-бързо от стандартното(ако няма инструкция и се смята подред). Това разбира е доста груб пример, но илюстрира добре ситуацията.

Главно инструкците биват няколко типа:

Аритметични: например събиране, изваждане, делене...
Логически: например "логическо и"(and - проверка за изпълняване на две условия едновременно), "логическо или"(or - проверка за изпълнение само на едно от двете условия, но не и двете или пък нито едно), "логическо не"(not - проверка за незипълнението на условие)...
Инструкции за манипулация на данни: например преместване, въвеждане, изкарване на изходни данни, зареждане, съхранение...
Инструкции за осъществяване на непосредствен контрол върху данните: например "отиди при"(goto - преместване при определен отрязък информация с цел манипулация), "ако настъпи събитие Х, отиди при"(if Х goto - същото, но само при настъпване на условие Х), "извикай"(call - подготвяне на данни за манипулация), "върни обратно"(return - връщане на обработени/необработени данни обратно за съхранение в очакване на по-нататъчна манипулация)...

С развитието на компютрите, разбира се номера на често задаваните задачи към тях става от една страна по-разнообразен, от друга страна - по-голям. Затова се периодично новите типове процесори поддържат нови инструкции, помагащи им да се справят по-бързо с вече навлезли и утвърдени често срещани задачи. Не е нещо необичайно да се намери по-добър начин за извършване на една задача и някоя инструкция да бъде променена(или друга, нова инструкция да я коригира и да ускори получаването на резултата).

За Intell някои от стандартните сетове инструкции са със следните имена: MMX, SSE сетовете(SSE1, SSE2, SSE3, SSE4, SSE4.1, SSE4.2, SSE4a), EMT64(или x86-64), x86...

За AMD някои стандартни сетове инструкции са както следва: 3DNOW!(което е еквивалент на MMX - но не са еднакви неща, просто са създадени като конкурентни технологии), SSE сетовете(SSE1, SSE2, SSE3, SSE4, SSE4.1, SSE4.2, SSE4a), AMD64(което е еквивалент на EMT64, но отново не са едни и същи неща...)

По пътя на логиката - колкото по-голям набор от инструкции има един процесор - толкова по-добре се справя той с определени задачи. Нека се абстрахираме от всички други условия и да сравним два процесора, които са еквивалентни, но единият има SEE 1+2+3, а другият SSE 1+2+3+4+4.1 Ще кажете - първият е по-бавен. Е, да... ама не :goatee: Всъщност двата процесора са еднакво бързи, и едва ли ще усетите разлика докато ползвате компютъра за интернет, чат или филми. Ако обаче се опитате да изпълните задача, включваща усилено задаване на задачи ускорявани от SSE4 инструкциите - разлика ще видите. Например, ако обработвате видео клипове, големи снимки на PhotoShop... тогава първият процесор ще е значително по-бавен от вторият, въпреки че при други задачи ще имат еднаква скорост.

HyperThreading

Това нашумя наскоро покрай Core i5 и Core i7 процесорите на Intell, но всъщност е нещо много по-старо - преди доста години имаше процесори с хипертрединг пуснати в продажба. Цената не оправдаваше резултата, което беше и причината да не станат толкова популярни.

В какво обаче е врътката на хипертрединга - едно физическо ядро се разглежда като няколко такива(например две). Това позволява към ядрото с хипертрединг да се пращат повече от една(например - две...) задачи наведнъж. И за да го илюстрираме, ще използваме злободневен пример. Представете си че трябва да занесете два подаръка - единият на приятелката ви, другият на любовницата, но местата на които трябва да го направите се намират в двата противоположни края на града. Вие се намирате в центъра на града и ви отнема два часа да идете до другият край. Което ще рече че вие ще изхабите 2 часа да отидете за едната сметка, после 2 часа обратно до центъра, и още 2 часа да отидете до другият офис, и накрая още два часа за да се върнете в изходно положение. Или общо - 8 часа. Ами ако можехте да се раздвоите? Пращате едното копие да занесе подаръка на приятелката, другото на любовницата и те стигат за два часа, после се връщат за още два часа и се съединяват. Тотално 4 часа. Идеално! Работата е свършена два пъти по-бързо.

Но светът не е идеален и хипертрединга не е нещо толкова хубаво. Понеже като ядрото се раздели на две логически, то разделя и мощността си. Ако го приложим за примера горе - като се разделите на две, вие разделяте и силите си. И ако преди сте можели да носите подарък тежащ 20 килограма, сега всяка ваша половина може да носи подарък тежащ най-много 10 килограма. Разделяте се на две, хващате двата подаръка и се оказва че единият е 4 килограма, а другият е 11 килограма. Едната половина потегля с по-лекият подарък, но другата? Другат а взема колкото може да носи и тръгва. После ще направи втори курс, за да вземе остатъка. И все пак не е толкова зле - едната половина е заета 4 часа(1 курс), а другата половина е заета 8 часа(2 курса). Което пак спестява време(по презумция че едната половина има 4 часа свободни - може да свърши нещо друго).

Ползите от хипертрединга силно зависят от това какви процеси се изпълняват на процесора и самото ускорение може да варира от наистина незначително до кажи-речи двойно ускоряване. Полза винаги има, но пък винаги може да се спори за размера й :)

Копирано от: www.f.badmin.org
Автор: Sys
Изображение
Аватар
Disregard
Новак
Новак
Мнения: 33
Регистриран на: 25 Юли 2016, 01:59
Ник в играта: 
Скайп профил: 
Местоположение: 

Re: Процесор - CPU - информация или какво е важно да знаете

Мнение от Disregard »

Страхотен урок! Благодаря ти за споделянето на тази информация.
Your usual W3D and a satanist.
Do not trust a coder.

Currently learning: Node.JS
Публикувай отговор

Обратно към “Софтуер/Хардуер”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта