Реализация Процессорной Архитектуры Из Книги Чарльза Петцольда «Код. Тайный Язык Информатики»



О книге Вероятно, многие из тех, кто интересуется изучением того, как работает компьютер на самом низком уровне, читали такие книги, как: Таненбаум «Компьютерная архитектура» или Харрис, Харрис «Цифровая схемотехника и компьютерная архитектура», которые, безусловно, являются всеобъемлющими трудами и хорошими книгами для обучения.

.

Но если вы не инженер, но все же хотите погрузиться в мир цифровых вычислений и глубже понять, как работает компьютер.

В этом вам может помочь книга Чарльза Петцольда «Код. Тайный язык информатики», которая начинает свой рассказ с причин, по которым люди нуждались в обмене информацией и ее обработке, с какими проблемами они столкнулись и заканчивается рассказами об устройстве реального мира.

операционные системы и процессоры и их архитектура.

При этом автор идеально подобрал тот уровень абстракции, которого придерживался при написании.

В каких-то моментах подробно описывающих работу элементарных частей процессора, а в других простыми словами рассказывающих о сложных вещах.



Описание архитектуры

Так в главе 17 «Автоматизация» автор, начав с описания того, как автоматизировать суммирование данных с сохранением промежуточного состояния между операциями, переходит к реализации архитектуры с набором команд, достаточным для выполнения практически любого расчета.

Эта архитектура отличается от используемых тем, что размеры адресной шины, шины данных и машинного слова имеют разные размерности.

Доступ к памяти осуществляется побайтно, что довольно распространено.

Машинное слово фиксированной длины с прямым порядком байтов состоит из 12 бит или 3 байтов, разделенных на две части.

Младший байт слова содержит код операции и номер команды, два старших байта содержат ее аргумент. Из-за ограничений пути передачи данных на один цикл процессора тратится 4 такта счетчика, 3 из которых тратятся на чтение инструкций и 1 на выполнение вычислений.

Архитектура описывает один программно-доступный регистр общего назначения, в котором хранятся результаты операций с АЛУ, а также 2 регистра флагов, которые являются аналогами регистра C и Z архитектуры CPSR ARM и указывают, является ли результатом последняя операция, выполненная с использованием АЛУ, имела битовый перенос или равнялась нулю соответственно.

Архитектура описывает 12 команд, которые логически можно разделить на 4 группы:

  • Операции по взаимодействию с внутренним реестром
  • Скачать
  • Сохранять
  • Арифметические операции
  • Складывать
  • Вычесть
  • Сложить с переноской
  • Вычитание с переносом
  • Операции перехода (условные и безусловные)
  • Идти
  • Иди, если 0
  • Иди, если переведут
  • Иди, если не 0
  • Иди, если не переведешь
  • Остановить операцию
  • Останавливаться
Поскольку количество операций, которые можно закодировать с помощью 8 бит, составляет 2^8=256, то для расширения архитектура оставляет 256-12=244 варианта команд, к которым можно добавить, например, различные часто используемые арифметические операции.

  • Побитовое И
  • Побитовое ИЛИ
  • Побитовое НЕ (НЕ)
  • Побитовое исключающее ИЛИ (XOR)
  • Логический сдвиг влево
  • Логический сдвиг вправо
  • Арифметический сдвиг
Также регистры флагов могут быть расширены состояниями N — последняя операция отрицательна и V — последняя операция имеет переполнение и условиями перехода, соответствующими этим состояниям и их сочетаниям.

Несмотря на то, что архитектура не предполагает увеличение количества внутренних регистров общего назначения, я считаю, что это можно реализовать.

В предложенном автором варианте данной архитектуры возможна реализация конвейерной технологии, однако это не обеспечит существенного прироста производительности из-за большого количества обращений к памяти для данных, то же самое можно сказать и об использовании обход. Единственный способ значительно улучшить проблему с производительностью — увеличить путь данных до ширины машинного слова.

Вероятно, наиболее важной частью системы является интерфейс взаимодействия с человеком.

Так, в главе 22 «Операционная система» Петцольд демонстрирует панель DMA. Доступ к памяти осуществляется путем перехвата адресного пути и остановки выполнения текущей программы.

Адресация предполагается путем ручного ввода значения путем перевода тумблеров в логическое состояние 0 или 1, содержимое ячейки сразу отображается с помощью световых индикаторов.

Изменение значения ячейки осуществляется с помощью тумблеров данных и возможно только в том случае, если активирован тумблер, разрешающий запись.

Активация тумблера сброса отвечает за сброс счетчика команд в ноль.



Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»



Выполнение

Несмотря на все выявленные недостатки и предложенные улучшения, для реализации была выбрана цель строгого соответствия архитектуры и ее реализации, описанной в книге.

Однако эти улучшения могут быть легко реализованы и добавлены в будущем.



Микроархитектура

Схема микроархитектуры, предложенная автором.



Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»

Для реализации микроархитектуры была использована САПР для ПЛИС Quartus II 13.0sp1, предоставляющая широкие возможности для разработки и отладки ПЛИС.

Несмотря на возможность описания архитектуры с помощью специализированных языков, таких как VHDL и Verilog, для большей наглядности все проектирование осуществлялось исключительно в графическом режиме.

Возможности встроенных функций, таких как:

  • lpm_mux (сокращение от мультиплексора)
  • lpm_decode
  • lpm_counter
  • lpm_ff (сокращение от триггера)
  • л/мин добавлять суб
  • lpm_constant
На начальных этапах разработки тестирование проводилось в программе ModelSim, поставляемой в комплекте разработки.

На заключительных этапах отладка и тестирование проводились непосредственно на самой исполнительной плате с использованием встроенной утилиты In-System Memory Content Editor для изменения состояния поступающих данных.

В качестве исполнительной платы была выбрана плата Cyclone II EP2C5 Mini Dev Board на базе FPGA-микросхемы EP2C5T144C8, имеющая встроенный кварцевый генератор 50 МГц, более 80 контактов интерфейса ввода-вывода общего назначения и разъем JTAG для прошивки и отладки.

.

Техническим ограничением стал существенно меньший объем доступной для использования оперативной памяти, в результате чего для адресации используются только наименее значимые 13 бит, в отличие от 16 бит, описанных в архитектуре.

Однако никаких критичных изменений в работу процессора это не вносит и исправляется заменой исполнительной платы на более производительный аналог.



Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»



Появление

Этот образ сформировал в моей голове довольно запоминающийся образ, и реализовать такой пульт на первый взгляд несложно.

Для его реализации понадобится 16+8+3=27 двухпозиционных тумблеров, 8 светодиодов и непосредственно листовой материал, на котором все будет размещаться.

Использовались микротумблеры ВКЛ-ВКЛ МТС-102. В нижнем положении соединяем верхнюю ногу со средней, в верхнем положении соединяем голень со средней.

Это было удобно, так как на все нижние можно было подать высокое напряжение, верхние соединить с землей и снять значение со средних.



Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»

Однако высота установки тумблера накладывала ограничение на толщину материала, поэтому от использования фанеры было решено отказаться.

А поскольку с самого начала ставилась цель придерживаться внешнего вида советских приборов, то в качестве фальшпанели было использовано стекловолокно, так как при достаточно малой толщине оно вполне выдерживает разрушающие нагрузки, которые будут создаваться при переключении тумблеров и, в отличие от металлов, легче обрабатывается и имеет более высокие прочностные характеристики, чем пластик.

Для дисплея использовались обычные светодиоды диаметром 5 мм с низким уровнем люминесценции, размещенные на панели с помощью специальных креплений.

Большой проблемой было нанесение надписей; Для этого в Autodesk Fusion 360 была разработана схема расположения надписей на передней панели и с помощью плоттера вырезан шаблон для покраски.



Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»

Для питания используется разъем GX16 5P, но для удобства использования он впаян в USB-шнур для удобства использования с обычными блоками питания.

Панель размещена на деревянном ящике с защелкой для удобного доступа к внутренним элементам.

Все детали печатной платы покрыты бесцветным матовым лаком, а сам корпус покрыт лаком цвета красного дерева.

Вилка расположена на стороне, противоположной панели управления.



Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»

Внешний вид в целом соответствует изображению, взятому за основу.

Для лучшей читаемости нумерация тумблеров изменена с десятичной на шестнадцатеричную.



Внутренне пространство

Как уже говорилось выше, в качестве вычислительного модуля была выбрана плата Cyclone II EP2C5 Mini Dev Board на базе микросхемы FPGA EP2C5T144C8. Для подключения тумблеров и светодиодов к плате было решено не использовать пайку, а использовать провода, используемые для макетирования.

Однако другая сторона подключена к тумблерам или принадлежащим им светодиодам.



Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»

Так как я хотел сделать бокс автономным, то решил представить плату от powerbank, в состав которой входит плата регулирования заряда литиевых аккумуляторов и повышения напряжения до 5 вольт, а также к ней припаяна коробка для аккумулятора 18650. Чтобы облегчить монтаж компьютерной платы и платы питания внутри корпуса, в САПР Autodesk Fusion 360 разработаны крепления, приклеиваемые к задней стороне.



Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»

В заключение хотелось бы сказать, что внутреннее пространство выглядит достаточно пустым и незаполненным, но это позволит более свободно расположить провода управления при закрытии.



Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»



Нижняя граница

С появлением FPGA разработчикам стало удобнее создавать прототипы своих устройств.

И даже задача создания собственного процессора не кажется такой уж невыполнимой.

Разумеется, в этом проекте была задействована лишь небольшая функциональность этого устройства.

Однако FPGA не очень популярны среди разработчиков-любителей, в отличие от микроконтроллеров, хотя они имеют более высокую скорость, что может быть полезно в системах реального времени и IoT. Особая благодарность блогеру Стасу Васильеву за рекомендацию этой книги и вдохновение на работу над этим проектом.

Потому что сейчас одна из важнейших задач — заинтересовать инженеров в работе над интересными проектами.

Теги: #Производство и разработка электроники #ARM #Процессоры #Сделай сам или Сделай сам #diy #Прототипирование #код #схемотехника #FPGA #modelsim #Quartus II

Вместе с данным постом часто просматривают: