
- •1. Загальна структура і функції комп’ютера
- •2. Продуктивність комп’ютера
- •3. Швидкодія мікропроцесорів
- •4. Система магістралі
- •5.Зв’язок між компонентами комп’ютера через магістраль
- •6.Магістраль рсі
- •7. Внутрішня пам’ять
- •8.Функції і характеристики підсистеми пам’яті
- •Размещение
- •10. Сучасні тенденції в організації модулів пам’яті
- •11. Стек
- •12.Зовнішня память
- •13.Збереження інформації на магнітних дисках
- •15.Оптична пам'ять
- •16. Збереження інформації на магнітних стрічках
- •17. Введення – виведення
- •18.Програмне введення –виведення
- •19. Введення-виведення по прериванню
- •20.Прямий доступ до пам’яті
- •Зовнішні інтерфейси….. Типы интерфейсов
- •Концепція організації операційних систем
- •Планування завдань
- •Керування розподілом пам’яті
- •Вектори обчислень
- •Арифметико-логічний пристрій
- •Система команд комп’ютера
- •Характеристики та функції команд
- •Структура і функції центрального процесора
- •30.Структура центрального процесора
- •31.Організація набору регістрів
- •32. Конвеєрна обробка команд
- •33. Комп’ютери зі скороченим набором команд
- •34. Організація конвеєру в risc-процесорах
- •35. Порівняльні характеристики risc і сisc комп’ютерів
- •36. Суперскалярні процесори
- •37. Паралелізм на рівні машинних команд
- •38. Функції пристрою керування
- •39. Мікрооперації
- •40. Управління роботою процесора
- •41. Пристрої управління із жорсткою логікою
- •42. Мікропрограмне керування
- •43. Управління послідовністю виконання мікрокоманд
- •44. Використання мікропрограмування
- •45. Параллельна обробка
- •46. Організація мікропроцесорних систем
- •47. Симетричні мультипроцесорні системи
- •48. Інформаційна цілісність кешів та протокол mesi
- •49. Кластери
- •50. Системи зі змінним часом звернення до пам’яті
Керування розподілом пам’яті
Когда вычислительная система предназначается для выполнения только одной программы, оперативная память разделяется на две части. В одной помещаются резидентные компоненты операционной системы, а во второй — прикладная программа и ее данные. В мультипрограммной системе "прикладная" область оперативной памяти, в свою очередь, должна быть распределена между несколькими прикладными программами. Выделение ресурсов памяти программам процессов должно выполняться динамически, и эта задача возлагается на операционную систему. Общепринято называть ее задачей управления распределением памяти (memory management).
Эффективное распределение памяти является жизненно важным для функционирования мультипрограммной системы. Если в оперативной памяти находится небольшая часть программ активных процессов, то велика вероятность того, что все процессы будут ожидать ввода-вывода, и процессор в результате будет простаивать. Следовательно, нужно так распределить память, чтобы в ней нашлось место как можно большему числу процессов.
Секционирование памяти
Самая простая схема распределения доступной оперативной памяти базируется на разбивке ее на секции фиксированной длины (рис. 7.13). Обратите внимание на то, что фиксированная длина секций не означает, что они обязательно должны иметь равную длину. Если разбивка неравномерная, то очередному процессу из числа свободных отводится секция минимального объема, достаточного для его размещения.
Адресуемая оперативная память может быть разделена и с помощью механизма сегментации. Если разбивка памяти на страницы происходит помимо воли программиста и скрывается от него операционной системой, сегментация выполняется под контролем программиста и является средством, позволяющим программисту управлять доступом к отдельным компонентам программы и данных с помощью атрибутов прав и привилегий. Понятие сегмент имеет несколько интерпретаций. Наиболее последовательным является представление о сегменте как об абстрактном объекте с определенным именем, размерами и некоторыми другими атрибутами, например именем владельца и идентификатором принадлежности данному объекту ресурсов.
Для программиста оперативная память представляет собой совокупность сегментов, каждый из которых можно считать отдельным адресным пространством переменной длины. Как правило, программист (или операционная система) размещает программу и данные в разных сегментах. Иногда программа размещается не в одном сегменте, а в нескольких, т.е. отдельным компонентам программы выделяются свои сегменты. И данные также часто хранятся не в одном, а в нескольких сегментах с разными атрибутами. Каждому сегменту назначаются свои атрибуты прав доступа и использования. Логический адрес при обращении к ячейке сегмента имеет формат номер сегмента, смещение.
Вектори обчислень
Хотя производительность современных больших вычислительных машин многократно возросла, существует класс задач, для которых их возможности по-прежнему оказываются недостаточными. Эти задачи связаны с моделированием реальных физических процессов в разных средах и решаются в таких отраслях науки, как аэродинамика, сейсмология, метеорология, ядерная физика, физика плазмы и т.п. [WILS84].
Характерной особенностью вышеупомянутых задач является выполнение однообразных вычислительных процедур с огромными массивами числовых данных, описывающих многомерные динамически изменяющиеся физические поля. Для решения подобных задач разрабатывается отдельный класс вычислительных систем, получивший название суперкомпьютеров. Такие системы должны обладать способностью выполнять сотни миллионов арифметических операций в секунду над числами в формате с плавающей точкой. Стоимость существующих систем этого класса достигает 10-15 млн. долларов. В отличие от больших вычислительных машин (мейнфреймов), которые проектируются в расчете намультипрограммный режим работы и интенсивный обмен информацией с периферийными устройствами, суперкомпьютеры оптимизированы с учетом особенностей числовой обработки больших и сверхбольших массивов данных.
Из-за большой стоимости суперкомпьютеров и их специализации на выполнении задач определенного класса рынок таких систем весьма ограничен. Их применяют только очень мощные исследовательские центры, работающие, в основном, по правительственным программам. Несмотря на огромные вычислительные возможности современных суперкомпьютеров, потребности научных исследований все время возрастают.
В рамках этого направления развивается класс компьютеров, ориентированных на операции над векторами, — так называемые матричные процессоры (array processor). Они используются как сопроцессоры для эффективной обработки векторизованных фрагментов программ.
Методы выполнения векторных операций
Ниже мы расскажем, в чем особенность операций над векторными переменными и как эти операции выполняются в компьютерах разных классов. В компьютере общего назначения обработка векторов или массивов чисел в формате с плавающей точкой5 организуется в виде циклической процедуры, причем в каждом цикле обрабатывается очередной элемент массива. Рассмотрим, например, два вектора (одномерных числовых массива) — А к В. Необходимо сложить их и поместить результат в вектор С. Для этого потребуется шесть операций сложения: