Предыдущая глава |
↓ Содержание ↓
↑ Свернуть ↑
|
Все современные видеокарты имеют множество узкоспециализированных облегчённых ядер, в самых мощных видеокартах этих ядер тысячи и может быть несколько типов ядер сразу, каждый тип под свою задачу. Это позволяет видеокарте иметь мощность во много раз больше, чем мощность процессора, однако ядра видеокарты неполноценные, они облегчены. И хотя процессор не может выполнить такое количество операций как видеокарты, на самом деле при сложных задачах процессор мощнее.
Современная топовая игровая видеокарта может иметь 10-20 тысяч ядер, каждое ядро 32 разрядное с порезанными функциями и работает на частоте 2000МГц, что в сумме даёт 20000ГигаГерц, в то время как 8 ядерный процессор, имея 8 ядер по 4 ГГц имеет скорость всего 32ГГц, то есть на компьютере есть процессор на 32ГГц и видеокарта на 20000ГГц. При этом процессор и видеокарта стоят примерно одинаково и потребляют примерно одинаковое количество энергии, ну пусть видеокарта потребляет в 2 раза больше энергии. Вопрос, зачем тогда процессор, если он такой слабый? На самом деле у современного процессора все ядра поддерживают абсолютно все функции в 64 разрядном режиме, а значит процессор может выполнять многие инструкции в одно действие. В то время как видеокарта имеет 10тысяч ущербных ядер под узкоспециализированные задачи, и если нагрузить супер мощную видеокарту сложными функциями, то она по факту будет работать даже медленнее чем процессор. Просто такие сложные задачи в видеокарту никогда не залетают, все сложные математические задачи всегда решает только процессор, а видеокарта рисует графику. Специальные порты, такие как OPENGL или DIRECTX через которые осуществляется управление графикой на видеокарте, созданы специально для того, чтобы на видеокарту можно было посылать только узкоспециализированные упрощённые задачи, которые она умеет решать и ничто другое. Эти порты ограничивают само количество команд и тип задач, которое можно послать на видеокарту, для того чтобы программист не повесил видеокарте задачу считать сложную и невыполнимую для неё задачу. Даже если супер мощная видеокарта в принципе способна выполнить неподходящую для себя задачу, она будет это делать даже медленнее чем процессор, несмотря на то, что видеокарта имеет мощность 20000ГГц, а процессор всего 32ГГц, потому что процессор будет всё считать в одно действие. А видеокарта будет долго тупить и тратить на многие операции по 5 или 10 тысяч действий, там где процессор справится за одно. Поэтому никто и не убирает процессор из компьютера, даже если многие думают, что процессор по сравнению с видеокартой очень слаб, на самом деле процессор не слаб, а как раз силён. Видеокарта создана, чтобы выполнять очень большое количество специально упрощённых задач, и это хорошее решение если единственная задача просто рисовать, а процессор выполняет максимально эффективно всё подряд. Поэтому каждое ядро процессора такое большое и тяжёлое и энерго неэффективное по сравнению с одним ядром видеокарты. Просто ядро видеокарты может выполнить лишь небольшое количество простых задач, а всё остальное оно делать не умеет, а процессор умеет делать всё и одинаково эффективно. Поэтому разделение задач видеокарты и процессора с точки зрения игр и графики необходимо. Видеокарта позволяет нам играть в супер крутые игры с три де графикой, расчёт такой сложной три де графики требует очень большого количества узкоспециализированных операций, если повесить это на процессор, он не справится, его скорости не хватит. Но для того чтобы делать много простой работы, супер профессионал не нужен, для этого хватит и урезанного ядра видеокарты, которое мало что умеет, но зато маленькое, лёгкое и потребляет мало электричества. В топовой видеокарте ядер 10тыс или 20тыс, они вместе потребляют в 2 раза больше энергии, чем топовый 8 ядерный процессор. Ясно, что каждое ядро процессора потребляет энергии в 300-500 раз больше чем одно ядро видеокарты. Но при выполнении простой задачи не важно кто её решает процессор или видеокарта, и её можно поручить простому ядру видеокарты. Но это не значит что процессор в принципе слабее видеокарты, процессор умеет делать всё и максимально производительно, а ядра видеокарты созданы под узкий круг задач и не могут выполнять функции процессора также эффективно как процессор, особенно если нагрузить их сложными задачами. Что касается майнинга криптовалюты, ИИ и многих других задач, которые сегодня решают через видеокарты, то там тоже пишут специальный код, который комфортен для видеокарты, в отличие от процессора там надо работать с оглядкой и кидать видеокарте всё подряд нельзя. Программисты, работающие с видеокартой напрямую, обычно понимают, что можно ей кидать, а что не стоит. Также следует понимать, что у видеокарты тоже есть свой ЦП, умеющий решать все виды задач, обычно в нём 2 или 4 ядра, и они слабее нормального процессора, и существуют они как раз на тот случай, если видеокарте придётся решать сложную задачу. Но большая часть потока информации видеокарты рассчитана на её облегчённые ядра, которых большинство, а все сложные задачи лучше поручить центральному процессору компьютера, а не видеокарте.
И ещё, сейчас найдётся безмозглый слабоумный неграмотный дилетант, который ткнёт меня носом в то, что у него в 2010ом году была виндоуз 7, которая работала на двухядерном 32битном процессоре, выпущенном в 2006ом году. И он скажет, что я полное фуфло которое не разбирается в вопросе. Или как-то так.
Так вот 32х битный процессор может быть 64разрядным, потому что количество бит процессора и разрядность это совершенно разные вещи, и если вы этого не поняли, то вы просто зря потратили время, читая всё, что я написал. У меня был товарищ по имени Влад Макарцов, который мнил себя великим специалистом в процессорах, я объяснял это ему примерно 5 раз, но он так и не понял, хотя он мнил себя великим специалистом в этой области, ничего не буду говорить про его уровень интеллекта, а то сильно обидится. Разрядность это способность процессора решать задачу определённой сложности, 64 разрядный процессор работает с 15 значными числами в одно действие, а 32 разрядный процессор с 7 значными числами в одно действие.
А вот 32 битный двухядерный процессор, изготовленный в 2006ом году, это способность процессора видеть оперативную память, а точнее количество кластеров оперативной памяти. А это совсем не тоже самое, что умение решать задачу.
Процессор может быть 64 разрядным и 32 битными, и это вполне нормально. Хотя да современные процессоры сейчас стали 64 битные.
Условно принято считать, что 32 битный процессор видит 8 гигабайт оперативной памяти, а 64 битный процессор видит 192 гигабайт оперативной памяти. Количество бит процессора в данном случае это величина его регистра, позволяющая работать с конечным количеством кластеров оперативной памяти. Причём очень важно, что не с объёмом оперативной памяти, а именно с количеством кластеров. Потому что размер кластера оперативной памяти может быть любым и его в большинстве случаев даже можно при желании настроить. То есть 32 битный процессор вполне может видеть и 256 гигабайт оперативной памяти, если сильно увеличить размер кластера, просто это не практично, потому что слишком большим кластеры это тоже плохо. Во-первых, в один кластер помещается только один файл и не более. Файл может быть разделён на несколько кластеров, если файл большой и это нормально, но в одном кластере может быть не больше одного файла. Отсюда вывод, если кластеры большие, и по ним распихать много мелких файлов, то большая часть кластера будет пустой, а это значит что память будет использоваться неэффективно и кроме того такая система будет работать медленнее, и весь процессор будет работать медленнее, поэтому размер кластера должен быть оптимальным и делать его слишком большим не стоит. Поэтому существует некоторый оптимальный размер кластера для 32битных процессоров, и увеличение кластера в два раза действительно может увеличить объём видимой оперативной памяти до 16 гигабайт, но лучше от этого компьютер работать не будет, а сами файлы того же размера будут занимать в оперативной памяти намного больше места. Тем не менее, 32 бита это количество кластеров которые видит процессор, а не объём оперативной памяти, как считают многие.
Возникает вопрос, а почему бы не сделать все процессоры сразу 64 битными или даже сразу 512 битными, чтобы памяти хватило просто раз и навсегда и можно было бы сделать самые маленькие и эффективные кластеры и лимит оперативной памяти не кончался бы никогда и память бы использовалась абсолютно эффективно?
Ответ, слишком большое количество кластеров делать нельзя это замедлит работу процессора, при прочих равных условиях 32 битный процессор работает быстрее чем 64 битный, и причём ощутимо быстрее. Потому что поиск информации в более крупном регистре занимает больше времени, а это супер маленькая задержка при работе процессора длительностью в наносекунды, или доли наносекунд, каждый раз, когда процессор загружает любые данные из оперативной памяти, и это дополнительная задержка на подключение к каждому и любому кластеру. То есть, говоря простым языком, чем больше кластеров, тем дольше процессор ищет нужный ему кластер, и это замедляет его работу, поэтому, чем меньше битность процессора, тем лучше. Поэтому в 1980ые годы все процессоры были 4, 8 и 16 битными, потом их по мере необходимости повысили до 32 бит, сейчас повысили до 64 бит, потому что объёмы оперативной памяти и количество файлов в коде растут, но повышать сразу до 128бит ещё в 1980ом году никто не стал, хотя это убило бы много проблем, просто потому что процессор к которому прикрутили 128битное устройство работал бы намного медленнее, чем тот же самый процессор с 16 битным выходом на оперативную память. И да это значит что по мере роста объёмов оперативной памяти производительность поиска данных снижается, поэтому никто не торопится делать 128 битные процессоры, до тех пор пока не будет острой необходимости и мы не будем вставлять в компьютер больше 192гигабайт памяти.
Так вот, процессор может быть 64 разрядным и 32 битным, и это норма. 64 разрядный процессор значит что он может работать с числами на 15 знаков в одно действие, это показатель сложности задач которые он может решать в одно действие. А 32 бита значит что процессор может видеть определённое конечное количество кластеров оперативной памяти, в нашем случае 8гигабайт, причём типичный 32битный процессор видит 4гигабайта оперативной памяти и 4гигабайта виртуальной файловой системы. То есть процессор разделяет все данные по востребованности, и часть суёт на оперативную память, а часть на жёсткий диск, поэтому 32битный процессор видит всего 8гигабайт памяти, и половину кидает на оперативную память, половину на виртуальную систему. Существует ошибочное заблуждение, согласно которому многие думают, что такой процессор видит лишь 4 гигабайта, нет, он может видеть 8 гигабайт, это можно настроить в виндоуз, правда изменение этого баланса может привести к сбоям в работе системы. Но можно выделить под виртуальную память 2 гигабайта, и заставить 32битный процессор видеть 6 гигабайт оперативной памяти, это при желании можно сделать даже в windows7 home basic то есть все операционные системы включая виндоус 7 и даже ХР и десятка тоже, умеют выбирать этот баланс между оперативной и виртуальной памятью. Но обычно по умолчанию это настроено половина на половину, на уровне заводских настроек ОС. Просто допустим у вас ситуация что вы хотите поиграть в игру и вам не хватает оперативной памяти, всё тормозит и надо бы хотя бы 6 гигабайт, а у вас 32битная виндоуз, но в комп вставлено 8 гигабайт ОЗУ просто комп их не видит, в настройках винды вполне можно разрешить винде использовать 6 гигабайт, уменьшив объём виртуальной памяти до 2Гб, и в принципе будет нормально работать, если не уменьшать виртуалку дальше. Просто рекомендуется соотношение 4+4, но если надо можно сделать и 6+2, 32битный процессор видит 8 гигабайт. Также можно увеличить размер кластера, это снизит скорость системы и эффективность использования кластера, но если очень хочется можно на 32битной системе сделать 12+4, то есть система будет видеть и использовать 12 гигабайт оперативной памяти, просто кластер будет размером в два раза больше нормы, и это не совсем хорошо. Это кстати не приведёт ни к сбоям ни к зависаниям, не будет никаких ошибок, просто в ряде случаев процессор будет временно работать на 25% а иногда и на 40% медленнее, а каждый маленький файл будет использовать ощутимо больше оперативной памяти. Но если у вас дико тормозит игрушка из-за нехватки оперативной памяти, а поиграть очень хочется, и процессор в игре не слишком нужен, то это вполне себе разумное решение. Это даже не какие-то запрещённые функции, их можно настроить, просто есть рекомендованные заводские настройки виндоуз в которые никто особо не вникает, а на всех форумах твердят, что винда видит только 4Гб. На самом деле 4Гб это просто практический жизненный опыт большого количества людей, которые плохо разбираются в тонкостях вопроса и не умеют лезть в настройки компа.
Следует помнить, что на жёстком диске тоже есть система кластеров, и она работает ровно точно также как и оперативная память, размер кластера можно задать при полном форматировании. Уменьшение кластера приводит к экономии места, особенно при хранении мелких файлов, потому что в каждый кластер влазит не более одного файла, и не важно какой у файла размер. В более мелких кластерах файлы распределяются по кластерной системе в среднем более равномерно и тратится меньше места, но для стандартных размеров кластеров разница не очень большая. Это будет критично только если самому всерьёз играться с размером кластера и выставить его жёстко не хорошо. Если сделать кластеры больших размеров, размер регистра заглавия диска уменьшится и сам поиск кластера будет осуществляться быстрее, однако из-за роста размера кластера будет дольше обрабатываться пустая область у маленьких файлов, так что не факт что скорость работы вырастит, однако более крупные файлы будут грузиться чуть быстрее, а более мелкие наоборот медленнее. Так что будет ли система в целом работать быстрее спорный вопрос, в данном случае лучше пользоваться стандартным размером, выставленным системой по умолчанию. Скорее всего, играясь с размером кластера вы только замедлите систему, поскольку размер кластера изначально по умолчанию выбран оптимальный, а уход от оптимального размера возможен, но сделает всё только хуже.
В общем, это всё что я вам хотел поведать про компьютеры и процессоры. Надеюсь, было интересно.
Предыдущая глава |
↓ Содержание ↓
↑ Свернуть ↑
|