Сопоставить процессор с принципиальной схемой

11

Я разработчик программного обеспечения (использую языки высокого уровня, такие как .NET, C, C ++ и т. Д.), Пытаюсь понять, как компьютеры работают на более низком уровне.

Я знаком с этой диаграммой:

Я пытаюсь получить общее представление о том, как диаграмма в ссылке отображается на принципиальную схему, как это:

Например, взгляните на оператор ассемблера:

ADD 1,2

Я пытаюсь понять, как процессор выдает «3» в качестве вывода. Я понимаю, что на этот вопрос трудно ответить простыми словами. Если это так, то поможет ссылка, возможно, на книгу.

w0051977
источник
Со ссылкой на первую опубликованную вами диаграмму все детали, необходимые для фактической арифметики, скрыты в большом блоке, помеченном «ALU»: каждый второй блок на этой диаграмме просто находится там, чтобы получить 1,2 и «добавить» в ALU. и результат снова. Зная это, вы можете начать читать, как работает АЛУ, если бы это было тем, о чем вы просили ..
Брайан Драммонд
5
Ваша первая диаграмма отображается на ЦПУ Z80 на второй диаграмме.
звездный синий

Ответы:

7

Проблема в том, что для того, чтобы понять, как компьютер достигает 1 + 2 = 3, вы должны понимать примерно на 2 уровня глубже, чем вы прошли.

Примерно компьютер организован (с точки зрения областей обучения), как это, от высшего уровня абстракции до самой физической реальности:

  1. Программное обеспечение
  2. Виртуальная машина
  3. Операционная система
  4. BIOS
  5. Встроенные системы
  6. IP-блоки (подразделения / периферия)
  7. Логические блоки
  8. Gate-Level
  9. Уровень транзистора
  10. Semicoductors
  11. Физика устройства

Чтобы правильно понять, почему компьютер может производить 2 + 1 = 3, вы должны сначала решить, что вы готовы принять «на веру», а что вы не поверите, пока не усвоите это. Эта информация будет на втором уровне ниже того, что вы понимаете. Поэтому, если вы хотите понять схему сумматора на логическом уровне, вам необходимо понять основы «цифровых» транзисторов (в частности, CMOS).

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

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

Если вы действительно хотите вводный курс мирового уровня, я не могу рекомендовать профессора Скотта Уиллса в Georgia Tech достаточно высоко. В прошлом году он скончался от рака, но его курс продолжается . В учебном классе Georgia Tech ECE2030 (введение в компьютерную инженерию) есть учебник, и все занятия проводятся онлайн.

Удачи!

DrFriedParts
источник
Спасибо за это. +1. Я разработчик .NET, хотя у меня есть опыт работы с C и C ++. Я понимаю, что C # скомпилирован в промежуточный язык, а JIT-компилятор нацелен на архитектуру компьютера путем компиляции кода IL на лету. Я пытаюсь понять, как микроконтроллер может получить операнд и код операции и произвести вывод. Я хорошо осведомлен (уровень GCSE) об электронных компонентах, таких как: транзисторы, конденсаторы и т. Д.
w0051977
... тогда я бы начал с "Switch Design" в Чтениях и продолжил работу над уроками.
DrFriedParts
Ваш список тем удастся добавить по нескольким, которые не имеют отношения к вопросу, пропуская те, которые наиболее актуальны.
Крис Страттон
@ Крис - Нет, это не так.
DrFriedParts
3

Мне пришлось учиться тому же в университете, и мы использовали книгу « Организация и дизайн компьютеров», которая была очень подробной (но, возможно, она слишком подробная для ваших нужд).

Паттерсон и Хеннеси использовали некоторый «простой» процессор MIPS и продемонстрировали всю функцию ЦП с некоторым примером кода в Ассемблере.

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

PS Может быть, простейший микропроцессор из Google Code будет полезен. Это микропроцессор, смоделированный в Java.

Томас Фишер
источник
2

Бесплатная книга « Как работают компьютеры - процессор и оперативная память » Роджера Янга ответит на ваш вопрос, она использует реле вместо транзисторов для лучшего понимания.

rvnd_kk
источник
2
Хотя эта книга выглядит полезной, отредактируйте ответ, включив в него полное название и информацию об авторе. Таким образом, если ссылка когда-либо изменится, возможно, будет возможно отследить ее в будущем.
PeterJ
Это похоже на то, что я искал в то время. +1. Я посмотрю, а потом вернусь.
w0051977
-1

Я нашел свой ответ здесь . Это общий обзор процесса добавления чисел.

w0051977
источник
4
Для будущих читателей будет более полезно, если вы подытожите материал в ответе. Просто указание ссылки на внешний ресурс мало что дает для EE.SE.
Фотон
Пожалуйста, обратите внимание, что @ThePhoton говорит здесь. Хотя это видео на YouTube может помочь вам, можете ли вы обобщить то, что вы узнали, так что, если эта ссылка на видео разорвется, это все равно ответ?
Кортук