Редактирование: ВОВКнОUС, 02 лекция (от 22 февраля)
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
= Внутренности вычислительной системы = | = Внутренности вычислительной системы = | ||
== Подсистема процессор + память == | == Подсистема процессор + память == | ||
- | |||
- | [[Image:Clustebuilding_02_01.png|640px|процессор фон-неймана]] | ||
Все в курсе, как устроен процессор фон-неймана. Есть процессор, в нём есть нечто, как его обозвать-то, по-русски оно называется АЛУ. Есть шины. Шины --- нечто, по которому мы можем передавать сигналы. Квадратику с буковкой, допустим P, будем обозначать арифметическое устройство, I --- устройство для подачи команд. При орг. вы. си стемы люди хотят, чтобы эта самая выч. система выдавала могла обрабатывать как можно больше как команд в единицу времени. Достигат ьсяя это может одним способом --- за счёт распараллеливания всяких устройств в составе этой ВС. | Все в курсе, как устроен процессор фон-неймана. Есть процессор, в нём есть нечто, как его обозвать-то, по-русски оно называется АЛУ. Есть шины. Шины --- нечто, по которому мы можем передавать сигналы. Квадратику с буковкой, допустим P, будем обозначать арифметическое устройство, I --- устройство для подачи команд. При орг. вы. си стемы люди хотят, чтобы эта самая выч. система выдавала могла обрабатывать как можно больше как команд в единицу времени. Достигат ьсяя это может одним способом --- за счёт распараллеливания всяких устройств в составе этой ВС. | ||
- | + | Есть классический процессор, где есть одно I, одно P, рядом есть одно M, то есть память. Где-то есть шина, которая связывает эти понятия. Наиболее части присутствует вот такая картина: у нас есть одно устройство, которе чиатет команды и заставляет эти команды исполнять... наоборот. Внутри процессора может быть неск. сложителей, неск. умножителей, и так далее. Такой подход для массового процессора появился сравнительно недавно, не больше, чем 10 лет назад. Вообще, так делают довольно давно, но на персоналках этостало появляться довольно недавно. | |
- | Есть классический процессор, где есть одно I, одно P, рядом есть одно M, то есть память. Где-то есть шина, которая связывает эти понятия. | + | |
- | [[Image:Clustebuilding_02_04.png|thumb|240px|Имеется несколько устройств, которые генерируют команджы для соотв. устройств управления]] | ||
Второе, что можно делать. Имеется несколько устройств, которые генерируют команджы для соотв. устройств управления. Вот это вот называется... параллелизм функциональных устройств. | Второе, что можно делать. Имеется несколько устройств, которые генерируют команджы для соотв. устройств управления. Вот это вот называется... параллелизм функциональных устройств. | ||
- | [[Image:Clustebuilding_02_05.png|thumb|left|240px|конвейерность]] | ||
Существует ещё одна точка зрения, на то... есть ещё другая вещь, конвейерность. Получает что-то на входе, и выдаёткакие-то значения. Операция получения значения считаетсч довольно сложная, трудоёмкая, и разбивается на несколько стадий, и каждую можно проводить после предыдущей. Данные подаются на первую стадию, потом на вторую, а первая стадия освобождается, и на первую мы можем опять подать данные. Если бы устройство не было таким... Пусть у нас есть n массивов на L элементом. Если у нас устройство является атомарным, то выход мы получим через m * L, пусть время работы стадии t, получим m * L * t, в случае конвейерности устройства, получим выход через (m + L - 1) * t. Это второй способ. | Существует ещё одна точка зрения, на то... есть ещё другая вещь, конвейерность. Получает что-то на входе, и выдаёткакие-то значения. Операция получения значения считаетсч довольно сложная, трудоёмкая, и разбивается на несколько стадий, и каждую можно проводить после предыдущей. Данные подаются на первую стадию, потом на вторую, а первая стадия освобождается, и на первую мы можем опять подать данные. Если бы устройство не было таким... Пусть у нас есть n массивов на L элементом. Если у нас устройство является атомарным, то выход мы получим через m * L, пусть время работы стадии t, получим m * L * t, в случае конвейерности устройства, получим выход через (m + L - 1) * t. Это второй способ. | ||
- | [[Image:Clustebuilding_02_06.png|thumb|240px|расслоение памяти]] | ||
Третий способ. Третий способ связан с тем, что у нас вот эта вот связь между процессором и памятью, она медленная. Тогда делают расслоение памяти. Вся память, которая доступна машине, делится на несколько блоков, к каждому блоку можно обращаться по своему проводу, в результате будет достигнуто некоторое ускорение. | Третий способ. Третий способ связан с тем, что у нас вот эта вот связь между процессором и памятью, она медленная. Тогда делают расслоение памяти. Вся память, которая доступна машине, делится на несколько блоков, к каждому блоку можно обращаться по своему проводу, в результате будет достигнуто некоторое ускорение. | ||
- | [[Image:Clustebuilding_02_07.png|thumb|left|240px|использование кэшей]] | ||
На этом базовые приёмы распределения доступа заканчиваются, и есть ещё способ введения промежуточных хреновин --- использование кэшей. | На этом базовые приёмы распределения доступа заканчиваются, и есть ещё способ введения промежуточных хреновин --- использование кэшей. | ||
Кэш ставится между процессором и памятью и работает на более высокой частоте, чем память. | Кэш ставится между процессором и памятью и работает на более высокой частоте, чем память. | ||
- | [[Image:Clustebuilding_02_08.png|thumb|240px|Многопроцессорность]] | ||
Это вот всякие низкоуровневые приёмы. Есьт приёмы более высокоуровневые. Многопроцессорность. | Это вот всякие низкоуровневые приёмы. Есьт приёмы более высокоуровневые. Многопроцессорность. | ||
- | + | Следующий уровень --- многомашинность. Когда такие блоки, их может быть много, соединяютс через свою коммуникационную сеть. | |
- | Следующий уровень --- многомашинность. Когда такие блоки, их может быть много, | + | |
По способу доступа в память ВС можно классифицировать в несколько классов. | По способу доступа в память ВС можно классифицировать в несколько классов. | ||
* SMP --- адресное пространство общее, и время обращения к памяти от произвольного процессора одинаковое. | * SMP --- адресное пространство общее, и время обращения к памяти от произвольного процессора одинаковое. | ||
* NUMA --- память общая, время доступа разное. | * NUMA --- память общая, время доступа разное. | ||
- | * MPP --- За каждым процессором закрепляется его | + | * MPP --- За каждым процессором закрепляется его собственны кусочек памяти, и доступ к не своей памяти осуществляется через сообщения |
* Кластеры | * Кластеры | ||
Строка 38: | Строка 29: | ||
На что смотреть, когда выбирается, на основе какого железа нужно выбирать ВС. Нужно примерно выставить себе шкалу присутствующих фишек и цены за эти фишки. | На что смотреть, когда выбирается, на основе какого железа нужно выбирать ВС. Нужно примерно выставить себе шкалу присутствующих фишек и цены за эти фишки. | ||
- | [[Image:Clustebuilding_02_10.png|thumb|240px]] | ||
- | [[Image:Clustebuilding_02_11.png|thumb|240px|MMX/SSE]] | ||
- | [[Image:Clustebuilding_02_12.png|thumb|240px|разделили АЛУ на две разные кучки]] | ||
* Intel 32/64/IA-64. Кроме того, есть MMX/SSE. Кроме того, есть HyperThreading. Такая схема вносит гораздо большее число проблем, чем может казаться. В результате получается довольно сложная штука. В результате, разделили АЛУ на две разные кучки. Часть к одному, часть к другому. Также есть два L1-кэша, один кэш L2. И когда нужны данных, кажде из этих являений, называемых ядром, обращается к своему кэшу, потом к общему, и доступ памяти у них общий. Кроме того, есть EM64T | * Intel 32/64/IA-64. Кроме того, есть MMX/SSE. Кроме того, есть HyperThreading. Такая схема вносит гораздо большее число проблем, чем может казаться. В результате получается довольно сложная штука. В результате, разделили АЛУ на две разные кучки. Часть к одному, часть к другому. Также есть два L1-кэша, один кэш L2. И когда нужны данных, кажде из этих являений, называемых ядром, обращается к своему кэшу, потом к общему, и доступ памяти у них общий. Кроме того, есть EM64T | ||
- | [[Image:Clustebuilding_02_13.png|thumb|left|240px|тут есть ещё главный УУ, который драконит команды, отдавая их дальше]] | ||
** Itanium. Он связан с VLIW, очень большим инструкционным словом, которое сразу можно загрузить в процессор и которое состоит из нескольких команд. Если раньше независимые УУ, то тут есть ещё главный УУ, который драконит команды, отдавая их дальше. | ** Itanium. Он связан с VLIW, очень большим инструкционным словом, которое сразу можно загрузить в процессор и которое состоит из нескольких команд. Если раньше независимые УУ, то тут есть ещё главный УУ, который драконит команды, отдавая их дальше. | ||
** Xeon. То же самое, только кэша побольше добавили. | ** Xeon. То же самое, только кэша побольше добавили. | ||
- | [[Image:Clustebuilding_02_14.png|thumb|left|240px|внутрь процессора добавлен контроллер памяти. Сами процессоры, если их несколько, связаны шиной HyperTransport]] | ||
* x86-64 = AMD64. С точки зрения обычного процессора, система команд отличается только наличием дублирующих их 32-битных команд и 64-битных регистров. Кроме того, есть некие отличия: отличия в том, что внутрь процессора добавлен контроллер памяти. Сами процессоры, если их несколько, связаны шиной HyperTransport. | * x86-64 = AMD64. С точки зрения обычного процессора, система команд отличается только наличием дублирующих их 32-битных команд и 64-битных регистров. Кроме того, есть некие отличия: отличия в том, что внутрь процессора добавлен контроллер памяти. Сами процессоры, если их несколько, связаны шиной HyperTransport. | ||
- | [[Image:Clustebuilding_02_15.png|thumb|240px|Cell]] | ||
* IBM. У фирмы IBM есть больше количество процессоров. Наиболее инртересные на текущий момент Power и Cell. У Cell есть один главный процессор и 8 SPE. SPE в некоторой степени ущербен. В отличие от ... в общем, там есть один большой управл. процессор а-ля Power, который умеет много разных операий, в частности, обращение в памят ь. SPE такого не умеют, зато они умеют складывать/умножать/делить числа. Cell можно отнести к семейству графических процессоров. Это счастье сейчас стоит в PS3. | * IBM. У фирмы IBM есть больше количество процессоров. Наиболее инртересные на текущий момент Power и Cell. У Cell есть один главный процессор и 8 SPE. SPE в некоторой степени ущербен. В отличие от ... в общем, там есть один большой управл. процессор а-ля Power, который умеет много разных операий, в частности, обращение в памят ь. SPE такого не умеют, зато они умеют складывать/умножать/делить числа. Cell можно отнести к семейству графических процессоров. Это счастье сейчас стоит в PS3. | ||
** Power. Power 4 (Power 5). Power 4 обладает такой штукой, называется спекулятивное выполнение команд. 8 одновременно исполняемых команд. | ** Power. Power 4 (Power 5). Power 4 обладает такой штукой, называется спекулятивное выполнение команд. 8 одновременно исполняемых команд. | ||
=== У нас на факультете есть такая штука, IBM p-Series 690 === | === У нас на факультете есть такая штука, IBM p-Series 690 === | ||
- | + | ||
- | + | ||
Процессор двухядерный. Кэши связаны некое коммуникационной средой, и сами MCM-модули в количестве 4 штук сажаются в то, что можно условно назвать материнской платой. Кэши третьего уровня связаны с оперативной памятью. Которая тоже расслоена. Такая многоуровневая система позволяет добиться того, что обращние из конкретного процессора в память происходит довольно редко. По возможности, всё это решается внутри кругов и циклов на своём уровне. Соответственно, можно джелать кластеры из регаттт, только очень дорого. | Процессор двухядерный. Кэши связаны некое коммуникационной средой, и сами MCM-модули в количестве 4 штук сажаются в то, что можно условно назвать материнской платой. Кэши третьего уровня связаны с оперативной памятью. Которая тоже расслоена. Такая многоуровневая система позволяет добиться того, что обращние из конкретного процессора в память происходит довольно редко. По возможности, всё это решается внутри кругов и циклов на своём уровне. Соответственно, можно джелать кластеры из регаттт, только очень дорого. | ||
{{ВОВКнОUС}} | {{ВОВКнОUС}} | ||
{{Lection-stub}} | {{Lection-stub}} |