Я ДЕЙСТВИТЕЛЬНО действительно пытался узнать об очень низком уровне компьютеров. Я просматривал множество страниц, посвященных домашнему пиву, и это довольно много. Я посещал занятия по электронному инжинирингу в колледже, но мы не очень углубились в этот предмет (это была компьютерная наука, поэтому большинство это было на самом деле алгоритмы и тому подобное).
Во всяком случае, как / были построены большинство АЛУ ? Я понимаю, что это не единственная часть компьютера, но все же это важная часть.
И не могли бы вы создать собственный ALU, просто используя логические элементы (в учебных целях)? Я понимаю, что это звучит глупо для тех, кто более осведомлен, но я просто пытаюсь понять. (Черт, даже простой сумматор был бы аккуратным проектом.) Если так, как это будет сделано? Есть ли примеры оборудования? (Я посмотрел вокруг Google, но я не могу найти ничего такого, что имеет пошаговое руководство, объясняющее вещи).
Ответы:
Вы можете построить их полностью из базовых логических элементов , и результат будет хорошим произведением искусства :-).
Логическая серия 74xx также содержит 74LS181 , 4-битный ALU среза , который значительно упрощает работу. Битовые фрагменты ALU использовались для создания более сложных ALU (читай: длиннее слово), но более новые технологии сделали этот вид IC устаревшим.
примечание: TTL (74xx) - это всего лишь одна технология, используемая для логических элементов. Редко используется больше. За ним последовал Low-Power Schottky: 74LSxx, строго говоря, также форма TTL. В настоящее время существуют десятки логических семейств, основанных на высокоскоростной CMOS (74HCxx, 74HCTxx, 74ACxx, ...)
В наши дни правильным способом создания ALU было бы сделать это в CPLD или FPGA . Это дает вам много возможностей, а HDL (язык описания аппаратного обеспечения), который вы используете для проектирования ALU, намного проще и менее подвержен ошибкам, чем попытка выяснить, как самостоятельно установить соединение с логическими элементами. VHDL и Verilog - это HDL дня.
Альтернативный метод для создания АЛУ (не использующий логические элементы) - это одна параллельная EEPROM / Flash . Вы используете входы A и B и операцию как вход (адрес) и получаете результат операции как вывод (данные). Все, что вам нужно сделать, это скомпилировать содержимое ПЗУ, то есть вы должны написать по каждому адресу, каким будет результат операции для соответствующих входов A, B и операции. Размер слова будет ограничен самым большим размером ПЗУ, который вы сможете найти.
источник
Вы можете создать свой собственный ALU, но даже старые компьютеры с дискретными чипами TTL использовали некоторую интеграцию для этого. Например, посмотрите на чип 74х181. Это 4-битный фрагмент ALU, который использовался на некоторых компьютерах TTL для реализации полного ALU с использованием одного из этих чипов на каждые 4 бита.
источник
Я бы начал в мире HDL первым. Напишите какой-нибудь verilog, используйте verilator или icarus verilog для имитации. Напишите код так, чтобы он напоминал дискретные и, или, а не затворные, а затем, если есть желание, найдите некоторые детали серии 74xx (переработанные?) И что-нибудь на макете. ИЛИ, есть несколько плат за $ 50 плюс или минус, которые могут быть установлены на CPLD и FPGA, и вы можете поместить alu в одну из тех, которые предлагают какой-то интерфейс снаружи, чтобы убедиться, что он работает. Я бы сказал, что обучение HDL - это то же самое, что вы изучаете основы сумматора и т. Д., А также изучаете входы, выходы и операции. Но вы можете сделать это в удобной и понятной среде, прежде чем переходить на аппаратное обеспечение. Очень похоже на то, как люди делают это сегодня, проектируют и моделируют, а затем разворачивают.
источник
Что касается книг, я определенно предпочитаю книги «Паттерсон и Хеннесси» (IIRC насчитывает 3, замаскированные под 3 издания, но на самом деле совершенно разные книги. Если вы серьезно - достаньте их все).
Если вы хотите поэкспериментировать с базовым ALU или даже с процессором, начните экспериментировать с логическим симулятором. Мы использовали DigitalWorks для наших классов, но я бы не рекомендовал это. Logisim ( http://sourceforge.net/projects/circuit/ ) выглядит многообещающе. Вам нужно освоить многоуровневую структуру: построить базовые блоки, такие как полный сумматор, селектор и триггер с триггером, запускаемый по краям, из шлюзов, затем построить регистры, ALU, логику секвенирования из этих строительных блоков, вплоть до ЦП. с памятью. Это действительно не так сложно построить, скажем, эквивалент PIC (14-битного ядра) процессора, присоединить несколько светодиодов и запрограммировать его для отображения дисплея Китта.
После этого будет интересно сделать 32-битное ядро, перенести на него GCC, реализовать его в FPGA и запустить на нем Linux. Но ты не будешь первым ...
источник
Это не глупый вопрос вообще. На странице Википедии показана такая схема уровня затвора для 2-битного ALU. Микросхемы ALU обычно используются в виде «срезов» - обычно 4- битных , которые можно каскадно получать для получения большей ширины шины (см. Разделение битов ).
Техническое описание для Texas 74181 4-bitslice АЛУ имеет уровень схематические ворот также.
источник
История процессоров - это история увеличения количества вещей в упаковке.
Самые ранние процессоры всегда использовали последовательные ALU, построенные из нескольких реле или вакуумных ламп. Первым, кто нарушил эту традицию, был Вихрь 1947 года.
Самые ранние транзисторные процессоры построили все из отдельных транзисторов.
Apollo Guidance Computer (AGM), возможно, первый компьютер, построенный на основе интегральных микросхем, использовал только один вид микросхем вне памяти: 3-входные вентили NOR. АЛУ и любая другая часть ЦП были полностью построены из большого количества интегральных схем NOR. (Гораздо быстрее) Cray 1 также использовал только один вид микросхем вне памяти: другой тип шлюза NOR.
Когда люди выяснили, как собрать больше транзисторов в чип, более поздние процессоры использовали (относительно) меньшее количество чипов для реализации ALU.
ALU может быть построен полностью из мультиплексоров ( «Мультиплексоры: тактическая ядерная логика» ), используя гораздо меньше микросхем, чем реализация NOR.
Дитер Мюллер (Dieter Mueller) опубликовал 8-битный дизайн ALU, который имеет больше функциональных возможностей, чем два чипа 74181 - 74181 не может сдвинуть вправо - построенный из еще меньшего количества чипов: 14 сложных чипов TTL: два 74283 4-битных сумматора, некоторые 4: 1 мультиплексор, и немного мультиплексора 2: 1.
Как и многие исторически важные коммерческие компьютеры, многие домашние процессоры используют некоторую версию 74181, первого «полного» ALU на одном кристалле.
Многие из этих процессоров построили 8-битный ALU или 16-битный (или оба) из нескольких 74181 чипов и нескольких 74182 чипов - каждый из 74181 обрабатывает только операции шириной 4 бита. Доморощенные машины, как правило, используют простейшую вещь, которая будет работать - вынос одного 74181, подающего к переносу следующего, образуя сумматор волнистого переноса. Коммерческие машины, которые используют чипы 74181, обычно используют генератор переноса с упреждением 74182, чтобы значительно быстрее сложить и вычесть.
Сегодня большинство ALU спрятаны внутри некоторого чипа - небольшой части процессора, некоторого другого типа ASIC, или CPLD или FPGA.
Даже после того, как «однокристальные компьютеры» стали доступны, иногда кто-то может создать 74181-совместимый ALU из GAL или ALU, используя только более простые логические элементы или даже отдельные транзисторы или реле для целей обучения.
Люди сделали это, поэтому это должно быть возможно.
Пошаговое руководство, объясняющее дизайн и реализацию ALU, звучит как очень хорошая идея. Пожалуйста, помогите нам написать один в викибуке Microprocess Design, возможно, в разделах «ALU» или «Wire Wrap» .
источник
Вы должны изучить элементы компьютерных систем от Nisan & Schocken.
источник
Исторически, некоторые работы с ALU выполнялись с дискретными (да, с транзисторами и т. Д.), А некоторые с затворами, а многие с 4-битными чипами «срезов» (TI SN74181 был ранним, и у Fairchild 29F01 был свой день).
Но СЕГОДНЯ, это вопрос построения логических уравнений в массиве логических элементов или логического описания PLA. Существуют коммерчески доступные готовые модули, которые будут вводить любое выбранное небольшое логическое устройство в ваш дизайн, и все, что нужно, это деньги на лицензирование «IP» (интеллектуальной собственности).
источник