Як будується більшість АЛУ, і чи можна «створити свій власний»?


11

Я дійсно дуже намагався дізнатися про дуже низький рівень комп'ютерів. Я переглядав багато домашніх сторінок, і це дуже багато, щоб взяти участь. Я взяв заняття з електронної інженерії в коледжі, але насправді ми не заглиблювались у цю тему (це була інформатика, тому більшість насправді це були алгоритми і таке).

Як би там не було побудовано більшість АЛУ ? Я усвідомлюю, що це не єдина частина комп’ютера, але все ж це важлива частина.

І чи могли ви створити свій власний АЛУ, просто використовуючи логічні ворота (для навчальних цілей)? Я розумію, це, мабуть, звучить нерозумно для тих більш обізнаних, але я просто намагаюся зрозуміти. (Чорт, навіть проста добавка була б акуратним проектом.) Якщо так, то як це зробити? Чи є якісь апаратні приклади? (Я оглянув Google, але не можу знайти нічого такого, що має покрокове керівництво, що пояснює речі).


1
Ви могли б бути зацікавлені в цьому .
Дін

6
Якщо говорити всередині команди чіпів CPU, якщо ви зацікавлені в комп'ютерній та процесорній архітектурі, тоді канонічними книгами є "Організація та дизайн комп'ютерів: Інтерфейс обладнання та програмного забезпечення", а потім "Архітектура комп'ютера: Кількісний підхід". Вони називаються відповідно "Паттерсон і Хеннесі" і "Хеннесі і Паттерсон" відповідно.
Росс Роджерс

@Dean - Так, кольорові проводки призначені для сіссі! :-)
stevenvh

Наш семестрний проект в EE360M в UT Austin в 1994 році був 4-бітним ALU на основі стека, реалізованим на демонстраційній платі Xilinx з XC3000-то, використовуваним як стек 16 рівнів, який набрав найкраще значення на 7-сегментному дисплеї LED , і XC4000 - те, що було фактичним ALU. Встановіть свій вхід та роботу на DIP-перемикачах, натисніть кнопку і ви переходите. У XC4k був внутрішній осцилятор з декількома частотами від 63 кГц до 8 МГц, і наш клас частково базувався на тому, наскільки швидко наша конструкція могла йти і працювати.
Майк Десимоне

1
@Shubham: Одного разу я побачив, що знаю, що мені потрібно триматися подалі від Minecraft ... я більше нічого не зроблю ... O_o
Майк Десимоне,

Відповіді:


15

Ви можете побудувати їх повністю з базових логічних воріт , і результат буде прекрасним витвором мистецтва :-).

Логічна серія 74xx також містить 74LS181 , 4-бітний зріз ALU , який значно спрощує речі. ALU бітових фрагментів використовувались для створення більш складних ALU (читайте: більша довжина слів), але новіші технології зробили цей ІС застарілим.
Примітка: TTL (74xx) - це лише одна технологія, яка використовується для логічних воріт. Рідко використовується вже. За ним слідував Шоткі з низькою потужністю: 74LSxx, строго кажучи, також форма TTL. На сьогоднішній день існує кілька десятків логічних сімей, які базуються на високошвидкісному CMOS (74HCxx, 74HCTxx, 74ACxx, ...)

В наші дні правильним способом створення ALU було б це зробити в CPLD або FPGA . Це дає вам багато воріт, і HDL (Мова опису апаратних засобів), який ви використовуєте для проектування АЛУ, набагато простіше і менш схильний до помилок, ніж намагаючись зрозуміти, як зробити з'єднання самостійно з логічними воротами. VHDL і Verilog - це ЛПВЩ сьогодні.

Альтернативним методом створення ALU (не використовуючи логічні ворота), буде одна паралельна EEPROM / Flash . Ви використовуєте входи A і B і операцію як вхід (адресу) і отримуєте результат операції як вихід (дані). Все, що вам потрібно зробити - це скласти вміст ПЗУ, це означає, що вам потрібно писати на кожну адресу, яким буде результат операції для відповідних входів A, B та операції. Розмір слова буде обмежений найбільшим розміром ROM, який ви можете знайти.


5

Ви можете створити свій власний ALU, але навіть старі комп'ютери з дискретними мікросхемами TTL використовували для цього певну інтеграцію. Наприклад, подивіться на чіп 74x181. Це 4-бітний фрагмент ALU, і він використовувався в деяких TTL-комп'ютерах для реалізації повної ALU, використовуючи одну з цих мікросхем для кожні 4 біти.


Вибачте за звучання невігласів, але наскільки саме чіпи TTL відрізняються від логічних воріт? і чи використовувався TTL перед логічними воротами чи після них? або вони зроблені з логічних воріт: плутати:

@Sauron - я додав замітку про логічні сім'ї до своєї відповіді
stevenvh

5

Я б почав у світі HDL першим. Напишіть деякий verilog, використовуйте verilator або icarus verilog, щоб імітувати його. Напишіть код таким чином, щоб він нагадував дискретні та, або, а не ворота, тоді, якщо так схильні, знайдіть деталі із серії 74xx (перероблені?) Та щось подібне. АБО, є кількість 50 доларів плюс або мінус плати CPLD та FPGA, які можна мати, і ви можете помістити alu в одну з тих, хто пропонує якийсь інтерфейс зовні, щоб побачити, що він працює. Я б заперечував, що освіта HDL - це та сама, що ви вивчаєте основи суматора і т. Д. І придумуєте введення та вихід та роботу. Але ви можете зробити це в простому у використанні та перегляді середовищі, перш ніж переносити його на апаратне забезпечення. Дуже подобається, як люди це роблять сьогодні, проектують та моделюють, а потім розгортають.


1
Абсолютно. Спочатку моделюйте. Тоді, якщо у вас є обладнання, FPGA є найбільш практичним. Підключення 74xx TTL для чогось цього комплексу буде величезним проектом, який не слід вирішувати, поки дизайн не буде по-справжньому продуманий.
Кріс Страттон

5

Що стосується книг, я, безумовно, друкую книжки "Паттерсон та Хеннесі" (IIRC є 3, замасковані під 3 видання, але насправді абсолютно різні книги. Якщо ви серйозно: отримайте їх усіх.)

Якщо ви хочете поекспериментувати з базовим дизайном ALU або навіть процесором: починайте експериментувати з логічним симулятором. Ми використовували DigitalWorks для своїх занять, але я б не рекомендував це. Logisim ( http://sourceforge.net/projects/circuit/ ) виглядає багатообіцяючим. Те, що вам потрібно освоїти, - це багатошаровість: побудуйте базові блоки, як повний суматор, селектор і фліп-флоп, що спрацьовує край, з наступних будівельних блоків, потім складіть регістри, ALU, послідовність логіки з цих будівельних блоків, аж до процесора з пам’яттю. Насправді не так складно побудувати, скажімо, еквівалент процесора PIC (14-бітний ядро), приєднайте купу світлодіодів і запрограмуйте його для показу дисплея Kitt.

Після цього буде цікаво зробити 32-бітове ядро, підключити до нього GCC, реалізувати його в FPGA і запустити на ньому Linux. Але ти не будеш першим ...


4

Це зовсім не дурне питання. На сторінці Вікіпедії показано таку схему рівня воріт для 2-розрядного ALU. ІЛУ-інтерфейси ALU використовувались як правило у "фрагментах" - як правило, 4-бітових, які можна каскадувати, щоб отримати ширину шини (див. Розріз бітів ).

Технічний опис для Texas 74181 4-bitslice АЛУ має рівень схематичні воріт також.


4

Історія процесорів є однією зі збільшення кількості матеріалів на пакет.

Найдавніші процесори завжди використовували серійні АЛУ, побудовані з кількох реле або вакуумних трубок. Першим, хто зламав цю традицію, був вихр 1947 року.

Найбільш ранні транзисторизовані процесори будували все від окремих транзисторів.

Комп'ютер Apollo Guidance Computer (AGM), можливо, перший комп'ютер, побудований із інтегральних мікросхем, використовував лише один вид ІС поза пам'яттю: 3-вхідні ворота NOR. ALU і будь-яка інша частина процесора повністю була побудована з великої кількості ІС-мереж NOR-шлюзів. Cray 1 також (набагато швидше) також використовував лише один вид ІС поза пам'яттю: інший тип воріт NOR.

Коли люди з'ясували, як набити чіп транзисторів на мікросхемі, пізніше процесори використовували (порівняно) меншу кількість мікросхем для впровадження ALU.

ALU можна повністю побудувати з мультиплексорів ( "Мультиплексори: тактичний Nuke of Logic Design" ), використовуючи набагато менше мікросхем, ніж реалізація 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" .



2

Історично деяка робота ALU проводилася з дискретністю (так, транзисторами тощо), а з іншими - з воротами, і багато з 4-бітовими мікросхемами (SNI-18181 TI був раннім, а Fairchild 29F01 - свій день).
Але сьогодні це питання побудови логічних рівнянь на мові опису логіки-масиву або в мові опису логіки PLA. Існують комерційно доступні заздалегідь вбудовані модулі, які зможуть увімкнути будь-який обраний невеликий логічний блок у ваш дизайн. Все, що потрібно, - це гроші на ліцензію на "IP" (інтелектуальну власність).


1
Коли резистори були дешевими відносно резисторів, існував ряд хитрощів, які могли дозволити побудову АЛУ з дуже низьким числом транзисторів (наприклад, повний суматор, що використовує два транзистори на етап). Такі схеми були потужними та не дуже швидкими, але коли транзистори були дорогими, вони могли економити значні витрати.
supercat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.