Элементы матричного процессора связаны между собой, поскольку их работу контролирует единый блок управления. Система из нескольких параллельных про¬цессоров, имеющих общую память, называется мультипроцессором. Поскольку каждый процессор может записывать информацию в любую часть памяти и счи¬тывать информацию из любой части памяти, чтобы не допустить каких-либо не¬стыковок, их работа должна согласовываться программным обеспечением. В си¬туации, когда два или несколько процессоров имеют возможность тесного взаимодействия, а именно так происходит в случае с мультипроцессорами, эти процессоры называют сильно связанными (tightly coupled).
Возможны разные способы воплощения этой идеи. Самый простой из них — соединение единственной шиной нескольких процессоров и общей памяти. Схе¬ма такого мультипроцессора показана на рис. 2.6, а. Подобные системы произво¬дят многие компании.
Рисунок 2.6
Нетрудно понять, что при наличии большого числа быстродействующих процессоров, которые постоянно пытаются получить доступ к памяти через одну и ту же шину, будут возникать конфликты. Чтобы разрешить эту проблему и по¬высить производительность компьютера, разработаны различные схемы. Одна из них изображена на рис. 2.6, б. В таком компьютере каждый процессор имеет собственную локальную память, недоступную для других процессоров. Эта па¬мять используется для тех программ и данных, которые не нужно разделять ме¬жду несколькими процессорами. При доступе к локальной памяти основная ши¬на не используется, и, таким образом, объем передаваемой по ней информации становится меньше. Возможны и другие варианты решения проблемы (напри¬мер, кэш-память).
Мультипроцессоры имеют преимущество перед другими видами параллель¬ных компьютеров, поскольку с единой общей памятью очень легко работать.
Память — это тот компонент компьютера, в котором хранятся программы и дан¬ные. Можно также употреблять термин запоминающее устройство. Без памяти, откуда процессоры считывают и куда записывают информацию, не было бы цифровых компьютеров со встроенными программами.
Адреса памяти
Память состоит из ячеек, каждая из которых может хранить некоторую порцию информации. Каждая ячейка имеет номер, который называется адресом. По ад¬ресу программы могут ссылаться на определенную ячейку. Если память содер¬жит п ячеек, они будут иметь адреса от 0 до п - 1. Все ячейки памяти содержат одинаковое число бит. Если ячейка состоит из k бит, она может содержать лю¬бую из 2k комбинаций. На рис. 2.7 показаны 3 различных варианта организации 96-разрядной памяти. Отметим, что соседние ячейки по определению имеют по¬следовательные адреса.
Рисунок 2.7
В компьютерах, в которых используется двоичная система счисления (вклю¬чая восьмеричное и шестнадцатеричное представление двоичных чисел), адреса памяти также выражаются в двоичных числах. Если адрес состоит из m бит, мак¬симальное число адресованных ячеек составит 2m. Например, адрес для обраще¬ния к памяти, изображенной на рис. 2.7, а, должен состоять по крайней мере из 4 бит, чтобы выражать все числа от 0 до 11. При устройстве памяти, показанном на рис. 2.7, б и 2.7, в, достаточно 3-разрядного адреса. Число бит в адресе опреде¬ляет максимальное количество адресуемых ячеек памяти и не зависит от числа бит в ячейке. 12-разрядные адреса нужны и памяти из 212 ячеек по 8 бит каждая, и памяти из 212 ячеек по 64 бит каждая.
Ячейка — минимальная единица памяти, к которой можно обращаться. В по¬следние годы практически все производители выпускают компьютеры с 8-раз¬рядными ячейками, которые называются байтами. Байты группируются в сло¬ва. В компьютере с 32-разрядными словами на каждое слово приходится 4 байт, а в компьютере с 64-разрядными словами — 8 байт. Такая единица как слово, не¬обходима, поскольку большинство команд производят операции над целыми словами (например, складывают два слова). Таким образом, 32-разрядная маши¬на содержит 32-разрядные регистры и команды для манипуляций с 32-разряд¬ными словами, тогда как 64-разрядная машина имеет 64-разрядные регистры и команды для перемещения, сложения, вычитания и других операций над 64-раз¬рядными словами.