
Современные процессоры строятся из одной или нескольких интегральных схем. Как правило, в персональном компьютере ЦП представляет собой одну микросхему, в которой используются все возможности современной полупроводниковой технологии. Такую микросхему принято называть микропроцессором. В больших компьютерах процессоры могут быть выполнены из нескольких интегральных схем.
В компьютерах используются процессоры нескольких типов. Наиболее распространены центральные, специализированные (например, процессоры для цифровой обработки сигналов или обработки графической информации), процессоры ввода-вывода, передачи данных и т. п.
Центральный процессор служит для обработки данных и управления всей компьютерной системой в целом. Он позволяет обрабатывать данные с фиксированной и плавающей точками, поля переменной длины, а иногда и десятичные данные, назначать приоритеты доступа и управлять различными видами памяти.
Процессор представляет собой совокупность АЛУ и устройства управления. В состав ЦП входят арифметическое устройство, счетчик команд, регистр команд, регистры данных, блок микропрограммного или аппаратного управления, регистры общего назначения и ряд узлов, предназначенных для связи с оперативной памятью и другими устройствами компьютера, а также для ускорения выполнения операций. Помимо этого в состав ЦП входят часы астрономического времени, таймер и ряд других «системных» средств.
В последнее время в одном кристалле с процессором начали размещать и кэш-память. Развитие технологии в конечном итоге приведет к тому, что в одной интегральной схеме будут интегрированы функции самых разных устройств, например в состав схемы процессора будет введена память. Для понимания принципов работы компьютера нужно разделять понятия «исполнение» и «выполняемые функции», поэтому процессором по-прежнему будем называть совокупность АЛУ и устройства управления.
Сегодня наибольшее распространение имеют одно-, двух- и трехадресные команды (рис. 5.2). Трехадресные команды характерны для компьютеров с сокращенным набором команд. Первый и второй адреса такой команды указывают месторасположение операндов, в третий адрес (ячейку памяти) заносится результат операции. Для определения адреса следующей выполняемой команды служит счетчик команд (IP), к содержимому которого после выполнения любой команды добавляется ее длина в байтах. Для перехода к выполнению команды, которая занимает не следующую по порядку ячейку памяти, в машине предусматривают специальные команды переходов. Трехадресные команды используются в так называемых RISC-компьютерах (машинах с сокращенным набором команд); в них операнды размещают в регистрах общего назначения, число которых может достигать 256. Загрузка этих регистров из памяти осуществляется специальной схемой, называемой контроллером или процессором загрузки.
Наиболее распространены в настоящее время двухадресные компьютеры. Это машины, команды в которых содержат не более двух адресов. Оба операнда находятся в регистрах, а результат выполнения операции также записывается в регистр. Такую команду принято называть командой RR-типа (регистр-регистр). Если один операнд находится в регистре, а второй в ячейке памяти, адрес которой индексируется, то такая команда относится к RX-типу. Команда, второй операнд которой находится в ячейке памяти без индексации, а первый в регистре, носит название RS-типа.
В команде может находиться не адрес операнда, а сам операнд (этот операнд называют непосредственным адресом, и он представляет константу), такую команду относят к SI-типу. Наконец, оба операнда могут находиться в памяти, для их вызова используют команду SS-типа.
В современном персональном компьютере IBM PC команды также двухадресные, но первый операнд всегда находится в одном из восьми регистров, а второй может находиться в регистре, памяти или непосредственно в самой команде. Помимо кода операции и адресов операндов команда этого компьютера содержит бит, указывающий направление передачи результата (d), бит ширины операнда (w), а также поле указания режима (md) и поле регистр/память (г/т).
В одноадресной машине команда содержит только один адрес, а поскольку обычно в арифметической операции используется два операнда, то второй уже находится в одном из регистров процессора. Результат операции всегда сохраняется в выходном регистре процессора, который называют аккумулятором. Для сложения двух чисел нужно выполнить три одноадресных команды: поместить первый операнд из памяти в регистр процессора, передать второй операнд из памяти и сложить его с первым, а затем сохранить результат в памяти. Однако на практике при выполнении программы никогда не приходится использовать все три команды. В регистре процессора сохраняется один из операндов, полученный при выполнении предыдущей операции (т. е. первая команда не нужна), а результат сложения будет использован следующей командой (т.е. его не нужно сохранять в памяти).