О книге Вероятно, многие из тех, кто интересуется изучением того, как работает компьютер на самом низком уровне, читали такие книги, как: Таненбаум «Компьютерная архитектура» или Харрис, Харрис «Цифровая схемотехника и компьютерная архитектура», которые, безусловно, являются всеобъемлющими трудами и хорошими книгами для обучения.
.
Но если вы не инженер, но все же хотите погрузиться в мир цифровых вычислений и глубже понять, как работает компьютер.
В этом вам может помочь книга Чарльза Петцольда «Код. Тайный язык информатики», которая начинает свой рассказ с причин, по которым люди нуждались в обмене информацией и ее обработке, с какими проблемами они столкнулись и заканчивается рассказами об устройстве реального мира.
операционные системы и процессоры и их архитектура.
При этом автор идеально подобрал тот уровень абстракции, которого придерживался при написании.
В каких-то моментах подробно описывающих работу элементарных частей процессора, а в других простыми словами рассказывающих о сложных вещах.
Описание архитектуры
Так в главе 17 «Автоматизация» автор, начав с описания того, как автоматизировать суммирование данных с сохранением промежуточного состояния между операциями, переходит к реализации архитектуры с набором команд, достаточным для выполнения практически любого расчета.Эта архитектура отличается от используемых тем, что размеры адресной шины, шины данных и машинного слова имеют разные размерности.
Доступ к памяти осуществляется побайтно, что довольно распространено.
Машинное слово фиксированной длины с прямым порядком байтов состоит из 12 бит или 3 байтов, разделенных на две части.
Младший байт слова содержит код операции и номер команды, два старших байта содержат ее аргумент. Из-за ограничений пути передачи данных на один цикл процессора тратится 4 такта счетчика, 3 из которых тратятся на чтение инструкций и 1 на выполнение вычислений.
Архитектура описывает один программно-доступный регистр общего назначения, в котором хранятся результаты операций с АЛУ, а также 2 регистра флагов, которые являются аналогами регистра C и Z архитектуры CPSR ARM и указывают, является ли результатом последняя операция, выполненная с использованием АЛУ, имела битовый перенос или равнялась нулю соответственно.
Архитектура описывает 12 команд, которые логически можно разделить на 4 группы:
- Операции по взаимодействию с внутренним реестром
- Скачать
- Сохранять
- Арифметические операции
- Складывать
- Вычесть
- Сложить с переноской
- Вычитание с переносом
- Операции перехода (условные и безусловные)
- Идти
- Иди, если 0
- Иди, если переведут
- Иди, если не 0
- Иди, если не переведешь
- Остановить операцию
- Останавливаться
- Побитовое И
- Побитовое ИЛИ
- Побитовое НЕ (НЕ)
- Побитовое исключающее ИЛИ (XOR)
- Логический сдвиг влево
- Логический сдвиг вправо
- Арифметический сдвиг
Несмотря на то, что архитектура не предполагает увеличение количества внутренних регистров общего назначения, я считаю, что это можно реализовать.
В предложенном автором варианте данной архитектуры возможна реализация конвейерной технологии, однако это не обеспечит существенного прироста производительности из-за большого количества обращений к памяти для данных, то же самое можно сказать и об использовании обход. Единственный способ значительно улучшить проблему с производительностью — увеличить путь данных до ширины машинного слова.
Вероятно, наиболее важной частью системы является интерфейс взаимодействия с человеком.
Так, в главе 22 «Операционная система» Петцольд демонстрирует панель DMA. Доступ к памяти осуществляется путем перехвата адресного пути и остановки выполнения текущей программы.
Адресация предполагается путем ручного ввода значения путем перевода тумблеров в логическое состояние 0 или 1, содержимое ячейки сразу отображается с помощью световых индикаторов.
Изменение значения ячейки осуществляется с помощью тумблеров данных и возможно только в том случае, если активирован тумблер, разрешающий запись.
Активация тумблера сброса отвечает за сброс счетчика команд в ноль.
Выполнение
Несмотря на все выявленные недостатки и предложенные улучшения, для реализации была выбрана цель строгого соответствия архитектуры и ее реализации, описанной в книге.Однако эти улучшения могут быть легко реализованы и добавлены в будущем.
Микроархитектура
Схема микроархитектуры, предложенная автором.
Для реализации микроархитектуры была использована САПР для ПЛИС Quartus II 13.0sp1, предоставляющая широкие возможности для разработки и отладки ПЛИС.
Несмотря на возможность описания архитектуры с помощью специализированных языков, таких как VHDL и Verilog, для большей наглядности все проектирование осуществлялось исключительно в графическом режиме.
Возможности встроенных функций, таких как:
- lpm_mux (сокращение от мультиплексора)
- lpm_decode
- lpm_counter
- lpm_ff (сокращение от триггера)
- л/мин добавлять суб
- lpm_constant
На заключительных этапах отладка и тестирование проводились непосредственно на самой исполнительной плате с использованием встроенной утилиты 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
-
Особенности Скачивания Файлов С Торрентов
19 Oct, 24 -
Интересное Для Жанра Arpg
19 Oct, 24 -
Устранение Неполадок Jiayu G3S
19 Oct, 24