Компьютер на одном чипе |
Разработанный компанией Intel многопроцессорный чип называется компьютером Single Chip Cloud Computer либо SCC. Его название четко описывает возможности нового чипа.
Ядра процессора соединены друг с другом по сети и следуют определенному протоколу для отправки сообщений друг другу через роутер. Эти сообщения обеспечивают обработку согласования КЭШа – не по определенному протоколу, в SCC за согласование КЭШа отвечает программист. Возможность обмена сообщениями между ядрами открыта программисту посредством интерфейса API. Это один из стимулов предоставления технологии SCC академикам и партнерам отрасли в первую очередь – чтобы они смогли разработать модели и процессы программирования, которые будут лучше всего работать в такой парадигме программирования. Интерфейс API называется RCCE. RCCE на самом деле представляет собой достаточно оптимизированную облегченную библиотеку команд, следующих протоколу. Разработчики также реализовали данный чип с протоколом TCP/IP, используемым для передачи сообщений. Эта конфигурация отлично работала и соответствовала тренду компьютерного облака. В одном из тестов они установили различные операционные системы на каждое ядро и заставили их взаимодействовать друг с другом через TCP/IP. Именно такая конфигурация применяется в компьютерном облаке – все работало на одном чипе. Такой эксперимент, хотя он и интересен, на самом деле не отодвигает границы технологии многопроцессорности. При разработке RCCE фирма Intel внесла оптимизацию, разработанную для сетевых технологий, на уровне чипа, что требует развития парадигмы программирования. Сообщения для каждого ядра работают, поскольку ядра соединены друг с другом по сети. Чтобы объяснить, как ядра соединены по сети, мне также необходимо объяснить общую архитектуру чипа. АрхитектураЧип, на самом деле, представляет собой несколько плиток, каждая из которых имеет два ядра, роутер, совместно используемый ядрами, и буфер коммуникаций. Роутер подключен к сетчатой сети на кристалле. SCC применяет чиповую память SRAM и внечиповую память DRAM, обе доступны напрямую для программиста. Доступ к SRAM возможен через RCCE API. Доступ к DRAM предоставляется через контроллер памяти. SCC оснащен несколькими контроллерами памяти и каждая группа плиток применяет только один контроллер памяти. Данные памяти DRAM каждого ядра записываются в кэш L1 и L2. Однако, так как в чипе не реализовано согласование КЭШа, программист отвечает за это. Интерфейсы API для реализации этой функции предоставляются RCCE. Управление электропитаниемЕще одной функцией, которая предоставляется RCCE, является управление питанием. Хотя технологии управления питанием еще не сильно развиты, они довольно интересны. Для управления питанием SCC может контролировать частоту каждой плитки (или всей ячейки) и напряжение, подаваемое на каждую группу из 4 плиток – называемую voltage island. Такое сочетание частоты и напряжения позволяет SCC контролировать потребление энергии. В любом случае на ноутбуке с таким процессором нужно проводить чистку от пыли (подробнее смотрите тут) во избежание перегрева. Хотя это может и не показаться чем-то удивительным, необходимо знать, что нельзя назначить случайное напряжение для каждой группы voltage island. Допустимые напряжения определяются частотой плитки. Подобно этому допустимые частоты определяются уровнем напряжения. RCCE справляется с этими сложностями, что не позволяет программисту случайно зажарить чип путем подачи неправильного напряжения либо частоты. Также стоит отметить, что эти изменения не мгновенные. Для изменения может потребоваться сотня тактовых циклов. Поэтому такой тип управления электропитанием не должен использоваться для малого количества инструкций, а должен применяться для более длительных периодов. Например, если сервер должен использовать SCC, определенная программа может быть настроена на использование определенной плитки, подобно тому, как работает сродство процессоров (processor affinity). В этом случае вы можете принимать решение о том, сколько энергии потребуется для этой программы. Возможно, программа не требует больших энергозатрат и отлично работает при малых напряжениях. В этом случае вы можете снизить напряжение группы и энергопотребление всего сервера. Это крайне полезно. Вы не только лишь экономите место, используя 1000 ЦП в одном сервере, однако вы также можете экономить электроэнергию |
< Пред. | След. > |
---|