Архитектура современного ПК

Автор работы: Пользователь скрыл имя, 20 Декабря 2014 в 13:06, курсовая работа

Описание работы

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

Содержание работы

ВВЕДЕНИЕ..............................................................................................................3
1. Подходы к архитектуре ПК..............................................................................3
1.1 Архитектура фон Неймана..............................................................................3
1.2 Гарвардская архитектура.................................................................................8
2. Структура ПК...................................................................................................10
2.1 Системная плата(материнская плата)............................................................10
2.1.1 Процессоры ................................................................................................10
2.1.1.1 Устройство центрального процессора ................................................11
2.1.1.2 Выполнение команд .............................................................................12
2.1.1.3 RISC и CISC............................................................................................13
2.1.1.4 Принципы разработки современных компьютеров............................15
2.1.2 Основная память.........................................................................................16
2.1.2.1 Бит............................................................................................................17
2.1.2.2 Адреса памяти.........................................................................................18
2.1.2.3 Упорядочение байтов.............................................................................19
2.1.2.4 Кэш-память.............................................................................................21
2.1.2.5 Сборка модулей памяти и их типы.......................................................25
2.1.3 Внешняя память..........................................................................................26
2.1.3.1 Иерархическая структура памяти.........................................................26
2.1.3.2 Жёсткие диски........................................................................................28
2.1.3.3 Флеш-накопитель...................................................................................30
2.1.3.4 DVD........................................................................................................31
2.1.4 Интерфейс...................................................................................................33
2.1.5 Видеокарта..................................................................................................34
2.1.6 Устройства ввода/вывода..........................................................................35
Заключение.............................................................................................................39
СПИСОК ЛИТЕРАТУРЫ.....................

Файлы: 1 файл

Архитектура современного ПК.doc

— 488.50 Кб (Скачать файл)

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

 Команды должны легко декодироваться. Предел количества запускаемых в секунду команд зависит от темпа декодирования отдельных команд. Декодирование команд позволяет определить, какие ресурсы им необходимы и какие действия нужно выполнить. Полезно все, что способствует упрощению этого процесса. Например, можно использовать единообразные команды с фиксированной длиной и с небольшим количеством полей. Чем меньше разных форматов команд, тем лучше.   

 К памяти должны обращаться только команды загрузки и сохранения. Один из самых простых способов разбить операцию на отдельные шаги — сделать так, чтобы операнды большей части команд брались из регистров и возвращались туда же. Операция перемещения операндов из памяти в регистры и обратно может осуществляться в разных командах. Поскольку доступ к памяти занимает много времени, причем длительность задержки не поддается прогнозированию, выполнение этих команд могут взять на себя другие команды, единственное назначение которых — перемещение операндов между регистрами и памятью. То есть к памяти должны обращаться только команды загрузки и сохранения (LOAD и STORE).  

 Регистров должно быть много. Поскольку доступ к памяти происходит довольно медленно, в компьютере должно быть много регистров (по крайней мере, 32). Если слово однажды вызвано из памяти, при наличии большого числа регистров оно может содержаться в регистре до тех пор, пока не потребуется. Возвращение слова из регистра в память и новая загрузка этого же слова в регистр нежелательны. Лучший способ избежать излишних перемещений — наличие достаточного количества регистров.

 

 

 

 

 

2.1.2 Основная память

Память — это тот компонент компьютера, в котором хранятся программы и данные. Можно также употреблять термин запоминающее устройство. Без памяти, откуда процессоры считывают и куда записывают информацию, не было бы цифровых компьютеров со встроенными программами.

 

 

 

2.1.2.1 Бит

Основной единицей хранения данных в памяти является двоичный разряд, который называется битом. Бит может содержать 0 или 1. Эта самая маленькая единица памяти. (Устройство, в котором хранятся только нули, вряд ли могло быть основой памяти. Необходимы по крайней мере два значения.)

Многие полагают, что в компьютерах используется бинарная арифметика, потому что это “эффективно”. Они имеют в виду (хотя сами это редко осознают), что цифровая информация может храниться благодаря различию между разными величинами какой-либо физической характеристики, например напряжения или тока. Чем больше величин, которые нужно различать, тем меньше различий между смежными величинами, и тем менее надежна память. В двоичной системе требуется различать всего две величины, следовательно, это — самый надежный метод кодирования цифровой информации. Если вы не знакомы с двоичной системой счисления, загляните в приложение А.

Считается, что некоторые компьютеры, например, мэйнфреймы IBM, используют и десятичную и двоичную арифметику. На самом деле здесь применяется так называемый двоично-десятичный код. Для хранения одного десятичного разряда задействуются 4 бит. Эти 4 бит дают 16 комбинаций для размещения 10 различных значений (от 0 до 9). При этом 6 оставшихся комбинаций не используются. Вот как выглядит число 1944 в двоично-десятичной и в чисто двоичной системах счисления (в обоих случаях используется 16 бит):

è    двоично-десятичное представление — 0001 1001 0100 0100;

è    двоичное представление — 0000011110011000.

В двоично-десятичном представлении 16 бит достаточно для хранения числа от 0 до 9999, то есть доступно всего 10 000 различных комбинаций, а в двоичном представлении те же 16 бит позволяют получить 65 536 комбинаций. Именно по этой причине говорят, что двоичная система эффективнее.

Однако представим, что могло бы произойти, если бы какой-нибудь гениальный инженер придумал очень надежное электронное устройство, позволяющее хранить разряды от 0 до 9, разделив диапазон напряжения от 0 до 10 вольт на 10 интервалов. Четыре таких устройства могли бы хранить десятичное число от 0 до 9999, то есть 10 000 комбинаций. А если бы те же устройства использовались для хранения двоичных чисел, они могли бы содержать всего 16 комбинаций. Естественно, в этом случае десятичная система была бы более эффективной.

 

 

2.1.2.2 Адреса памяти

Память состоит из ячеек памяти, каждая из которых может хранить некоторую порцию информации. Каждая ячейка имеет номер, который называется адресом памяти. По адресу программы могут ссылаться на определенную ячейку. Если память содержит n ячеек, они будут иметь адреса от 0 до n – 1. Все ячейки памяти содержат одинаковое число бит. Если ячейка состоит из k бит, она может содержать любую из 2k комбинаций. На рис. 2.8 показаны 3 различных варианта организации 96-разрядной памяти. Отметим, что соседние ячейки по определению имеют последовательные адреса. 

 

Рис. 2.8. Три варианта организации 96-разрядной памяти

В компьютерах, в которых используется двоичная система счисления (включая восьмеричное и шестнадцатеричное представление двоичных чисел), адреса памяти также выражаются в двоичных числах. Если адрес состоит из m бит, максимальное число адресованных ячеек составит 2m. Например, адрес для обращения к памяти, изображенной на рис. 2.8, а, должен состоять по крайней мере из 4 бит, чтобы выражать все числа от 0 до 11. При устройстве памяти, показанном на рис. 2.8, б и 2.8, в, достаточно 3-разрядного адреса. Число бит в адресе определяет максимальное количество адресуемых ячеек памяти и не зависит от числа бит в ячейке. 12-разрядные адреса нужны и памяти из 212 ячеек по 8 бит каждая, и памяти из 212 ячеек по 64 бит каждая.

В табл. 2.1 показано число битов в ячейке памяти некоторых коммерческих компьютеров.

Таблица 2.1. Число бит в ячейке памяти некоторых моделей  
коммерческих компьютеров

Компьютер

 Число битов  в ячейке

Burroughs B1700

1

IBM PC

8

DEC PDP-8

12

IBM 1130

16

DEC PDP-15

18

XDS 940

24

Electrologica X8

27

XDS Sigma 9

32

Honeywell 6180

36

CDC 3600

48

CDC Cyber

60


Ячейка — минимальная единица памяти, к которой можно обращаться. В последние годы практически все производители выпускают компьютеры с 8-разрядными ячейками, которые называются байтами. Байты группируются в слова. В компьютере с 32-разрядными словами на каждое слово приходится 4 байт, а в компьютере с 64-разрядными словами — 8 байт. Такая единица как слово, необходима, поскольку большинство команд производят операции над целыми словами (например, складывают два слова). Таким образом, 32-разрядная машина содержит 32-разрядные регистры и команды для манипуляций с 32-разрядными словами, тогда как 64-разрядная машина имеет 64-разрядные регистры и команды для перемещения, сложения, вычитания и других операций над 64-разрядными словами.

2.1.2.3 Упорядочение байтов

Байты в слове могут нумероваться слева направо или справа налево. На первый взгляд может показаться, что между этими двумя вариантами нет разницы, но мы скоро увидим, что выбор имеет большое значение. На рис. 2.9, а изображена область памяти 32-разрядного компьютера, в котором байты пронумерованы слева направо (как у компьютеров SPARC или мэйнфреймов IBM). На рис. 2.9, б показана аналогичная область памяти 32-разрядного компьютера с нумерацией байтов справа налево (как у компьютеров Intel). В первой из этих систем нумерация начинается с высшего порядка, в связи с чем она относится к категории компьютеров с прямым порядком следования байтов. Системам с обратным порядком следования байтов(рис. 2.9, а). Между прочим, эти термины (“big endian” и “little endian”) заимствованы из “Путешествий Гулливера” Свифта — он, как мы помним, иронизировал по поводу спора политиков о том, с какого конца нужно разбивать яйца. Впервые они были введены в научный оборот в виртуозной статье Коэна. 

 

Рис. 2.9. Память с прямым порядком следования байтов (а);  
память с обратным порядком следования байтов (б)

Важно понимать, что в обеих системах 32-разрядное целое число (например, 6) представлено битами 110 в трех крайних правых битах слова, а остальные 29 бит представлены нулями. Если байты нумеруются слева направо, биты 110 находятся в байте 3 (или 7, или 11 и т. д.). Если байты нумеруются справа налево, биты 110 находятся в байте 0 (или 4, или 8 и т. д.). В обеих системах слово, содержащее это целое число, имеет адрес 0.

Если компьютеры содержат только целые числа, никаких сложностей не возникает. Однако многие прикладные задачи требуют использования не только целых чисел, но и цепочек символов и других типов данных. Рассмотрим, например, простую запись данных о персонале, состоящую из строки (имя сотрудника) и двух целых чисел (возраст и номер отдела). Строка завершается одним или несколькими нулевыми байтами, призванными заполнить слово целиком. На рис. 2.10, а для записи “Jim Smith, 21 год, отдел 260” (1 ´ 256 + 4 = 260) представлена схема с нумерацией байтов справа налево, а на рис. 2.10, б — с нумерацией байтов слева направо. 

 

Рис. 2.10. Запись данных о сотруднике для машины с прямым порядком следования байтов (а); та же запись для машины с обратным порядком следования байтов (б); результат передачи записи с машины с прямым порядком следования байтов на машину с обратным порядком следования байтов (в); результат перестановки байтов в предыдущем случае (г)

Оба этих представления хороши и внутренне последовательны. Проблемы начинаются тогда, когда один из компьютеров пытается переслать запись на другой компьютер по сети. Предположим, что машина с нумерацией байтов слева направо пересылает запись на компьютер с нумерацией байтов справа налево по одному байту, начиная с байта 0 и заканчивая байтом 19. Для простоты будем считать, что биты не инвертируются при передаче. Таким образом, байт 0 переносится из первой машины на вторую в байт 0 и т. д., как показано на рис. 2.10, в.

Компьютер, получивший запись, имя печатает правильно, но возраст получается 21 ´ 224, и номер отдела тоже искажается. Такая ситуация возникает, поскольку при передаче записи порядок следования букв в слове меняется так, как нужно, но при этом порядок следования байтов в целых числах тоже меняется, что приводит к неверному результату.

Очевидное решение проблемы — использование программы, которая инвертировала бы байты в слове после создания копии. Результат такой операции представлен на рис. 2.10, г. Мы видим, что числа стали правильными, однако строка превратилась в “MIJTIMS”, при этом буква “H” вообще расположилась отдельно. Строка переворачивается потому, что компьютер сначала считывает байт 0 (пробел), затем байт 1 (M) и т. д.

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

2.1.2.4 Кэш-память

Процессоры всегда работали быстрее, чем память. Так как процессоры и память совершенствуются параллельно, это несоответствие сохраняется. Поскольку на микросхему можно помещать все больше и больше транзисторов, разработчики процессоров создают конвейерные и суперскалярные архитектуры, что еще больше увеличивает быстродействие процессоров. Разработчики памяти обычно используют новые технологии для увеличения емкости, а не быстродействия, что делает разрыв еще большим. На практике такое несоответствие в скорости работы приводит к тому, что, когда процессор обращается к памяти, проходит несколько машинных циклов, прежде чем он получит запрошенное слово. Чем медленнее работает память, тем дольше процессору приходится ждать, тем больше циклов проходит.

Как мы уже отмечали, есть два пути решения проблемы. Самый простой из них — начать считывать информацию из памяти и при этом продолжать выполнение команд, но если какая-либо команда попытается использовать слово до того, как оно считано из памяти, процессор должен приостановить работу. Чем медленнее работает память, тем чаще будет возникать такая ситуация и тем больше окажется время простоя процессора. Например, если отсрочка составляет 10 циклов, весьма вероятно, что одна из 10 следующих команд попытается использовать слово, которое еще не считано из памяти.

Другое решение проблемы — сконструировать машину, которая не приостанавливает работу, но следит, чтобы программы-компиляторы не использовали слова до того, как они считаны из памяти. Однако это не так просто осуществить на практике. Часто при обработке команды загрузки машина не может выполнять другие действия, поэтому компилятор вынужден вставлять пустые команды, которые не производят никаких операций, но при этом занимают место в памяти. В действительности при таком подходе простаивает не аппаратное, а программное обеспечение, но снижение производительности при этом такое же.

На самом деле эта проблема не технологическая, а экономическая. Инженеры знают, как создать память, которая работает так же быстро, как процессор. Однако ее приходится помещать прямо на микросхему процессора (поскольку информация через шину поступает очень медленно). Размещение памяти большого объема на микросхеме процессора делает его больше и, следовательно, дороже, и даже если бы стоимость не имела значения, все равно существуют ограничения на размеры создаваемых процессоров. Таким образом, приходится выбирать между быстрой памятью небольшого объема и медленной памятью большого объема. (Мы, естественно, предпочли бы иметь быструю память большого объема и к тому же дешевую.)

Информация о работе Архитектура современного ПК