2014-10-20 3 views
0

Мы узнаем о том, как компьютер фактически выполняет C-программу в классе. Я не совсем понимаю, как сочетаются следующие части: процессор (или процессор), файлы регистров, стеки времени выполнения, счетчик программ, виртуальные адреса, память программ.Нужна помощь в понимании базовой компьютерной архитектуры

Позвольте мне объяснить, что я в настоящее время знаю или думаю, что я понимаю:

  1. Процессор (или CPU), что будет компилировать файл .c в исполняемый машинный код уровня, что компьютер может понять и выполнить.
  2. Существует стек, на который могут быть нажаты команды, чтобы компьютер мог выполнять указанные инструкции. Вопросы: Где находится этот регистр стека в отношении процессора? Где вытягиваются инструкции?

  3. Этот стек может содержать регистры, такие как% eax,% ecx,% edx и т. Д., Которые иногда содержат числовые значения и иногда содержат адреса, указывающие на элементы, хранящиеся в «памяти». Вопрос: Снова где расположена эта память?

  4. Существует программная память, которая содержит исполняемый машинный код для программы, блоки памяти, которые пользователь выделяет, и стек времени выполнения для управления процедурными вызовами и возврата. Вопросы: Опять же, где находится эта программная память, расположенная по отношению к процессору?

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

+0

1 является составителем, а не процессор. –

+0

К сожалению, этот вопрос слишком широк для переполнения стека. Есть много хороших руководств по компьютерной архитектуре, которые уже написаны и доступны. Любой ответ здесь может только осветить основы. –

+0

Ohhhh K. Я думаю, что было бы в ваших интересах немного побольше узнать, прежде чем спрашивать. Есть много, много сайтов, которые проходят через основы процессоров, регистров, памяти, компиляторов и языков высокого уровня, таких как C. – Kinnectus

ответ

2

В принципе, вы должны взглянуть на: Von Neumann Architecture

Изображение на этом сайте, обеспечивает хороший обзор на Основные компоненты ПК: http://www.doc.ic.ac.uk/~eedwards/compsys/memory/

Однако, я объясню немного этот материал с акцентом на ваши вопросы (где ничего не делает проживает в связи с ЦП):

CPU

  • CPU: Микрочип, который часто называют «мозгом» компьютера, - это фактический материал расчета. Программа представляет собой простой «список» инструкций, которые выполняются, начиная с самой первой инструкции.

  • ALU (арифметико-логическое устройство) находится внутри процессора и фактически выполняет вычисления

  • Регистры: клетки памяти, которые находятся внутри процессора. Сохранять значения, необходимые для расчетов (или их результатов)

  • Счетчик программ: Специальный регистр внутри ЦП, содержащий ссылку на инструкцию, которая будет выполнена.

RAM (Memory) ОЗУ является "рабочей" памяти вашего компьютера.

  • ОЗУ просто большое количество ячеек для хранения значений

  • ОЗУ намного быстрее, чем жесткий диск. RAM гораздо медленнее, чем регистры внутри процессора, хотя

  • При запуске программы, инструкции по ее загрузке с жесткого диска в ОЗУ

  • программы часто должны работать на много данных (это ваши переменные, объекты и т.д. используется при программировании) - они также хранятся в ОЗУ

  • стек представляет собой структуру данных, которая находится внутри ОЗУ (по крайней мере, в нашем ПК ..). Стек содержит локальные переменные, функциональные параметры и адреса функций (если вы вызываете функцию B из функции A, адрес следующей инструкции функции A сохраняется в стеке. Поэтому, когда программа заканчивает функцию B, она может прыгать вправо назад место, где он оставил функцию A) (Поиск Википедии «стек» ..)

ЦП (с его регистрами) и оперативная память (данные, стек, ...) соединены вместе с BUS.

Это просто обзор, он получает очень TAFF, когда вы смотрите в детали - я надеюсь, что это помогает немного, хотя :-)

Смежные вопросы