Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
15.01.2021
Размер:
24.02 Кб
Скачать

Міністерство освіти України

Міжнародний науково-технічний університет

Кафедра гірничої справи та комп’ютерних технологій

Розрахункова робота по курсу

“Архітектура комп’ютерів”

Виконав студент групи ЗПІ-91

Гулієв Султан Рахібович

Перевірив

ст. викладач Тітков Д.В.

Київ 2020

Електронна пам'ять ЕОМ.

Пам'ять ЕОМ(електронна обчислювальна машина), сукупність технічних пристроїв і процесів, що забезпечують запис, зберігання і відтворення інформації в ЕОМ(електронна обчислювальна машина). Пам'ять — основна частина будь-якої обчислювальної системи або окремої обчислювальної машини, вона реалізується апаратурно — у вигляді комплексу взаємозв'язаних пристроїв, що запам'ятовують (ЗУ) — і програмними засобами. Максимальна кількість інформації, яка може зберігатися в П. ЕВМ(електронна обчислювальна машина) (ємкість), визначається сумарною ємкістю всіх ЗУ, а швидкодія П. ЕВМ(електронна обчислювальна машина) залежить як від швидкодії окремих ЗУ, так і від принципів їх організації в єдину систему пам'яті і способів обміну інформацією усередині цієї системи. Із збільшенням ємкості П. ЕВМ(електронна обчислювальна машина) її швидкодія, як правило, знижується за рахунок зростання часу, необхідного для пошуку потрібної інформації у великих масивах, а також унаслідок збільшення часу пробігу імпульсів по електричних ланцюгах.

Пам'ять сучасної ЕОМ(електронна обчислювальна машина) будується у вигляді багатоступінчастої ієрархічної системи, що забезпечує економічно виправдане задоволення суперечливих вимог — великій ємкості і високого швидкодії. У ієрархію П. ЕВМ(електронна обчислювальна машина) зазвичай входять: зовнішня пам'ять дуже великої ємкості (сотні мільйонів слів), в якій масиви інформації зберігаються на магнітних стрічках ; ще один рівень зовнішньої пам'яті, меншої ємкості і вищої швидкодії, — на магнітних барабанах і магнітних дисках ; внутрішня, або оперативна, пам'ять, яка в ЕОМ(електронна обчислювальна машина) 3-го покоління частіше називається головною пам'яттю, з ємкістю до сотень тис. і млн. слів і циклом звернення від десятих доль до декількох мксек (швидкодія оперативної пам'яті, що входить до складу процесора, повинно бути сумірно з швидкодією останнього оскільки виконання будь-якої арифметичної або логічної операції пов'язане з витяганням інформації з оперативної пам'яті і записом туди отриманих результатів); надоперативна пам'ять, об'єднуюча найбільш часто використовувані елементи оперативної пам'яті і що має ємкість в декілька десятків або сотень слів і цикл звернення від сотих до десятих доль мксек ; регістри — ЗУ ємкістю в одне слово в різних блоках процесора; постійна пам'ять (довготривала однобічна) для зберігання табличних даних, коефіцієнтів, підпрограм і мікропрограм ; буферна пам'ять як проміжна ланка при обміні між ЗУ різних рівнів П. ЕВМ(електронна обчислювальна машина).

Багатовимірні масиви

Двовимірний масив (матриця) можна представити як одновимірний масив, кожний елемент якого – масив. Тривимірний масив – це масив, кожний елемент якого являє собою двовимірну матрицю.

char Matrix2D[6][9];              // Двовимірний масив 6x9 елементів

unsigned long Arr3D[4][2][8];     // Тривимірний

Багатовимірні масиви ініціалізуються в порядку якнайшвидшої зміни само­го правого індексу: спочатку відбувається присвоєння початкових значень всіх елементів останнього індексу, потімпопереднього і т. д.:

int Mass[3][2][4] = {1,2,3,4,5,6,7,8,9,10,11,12,

                 13,14,15,16,17,18,19,20,21,22,23,24};

Рекомендується для наочності групувати дані за допомогою проміжних фігурних дужок:

int Mass[3][2][4]={{{l,2,3,4},{5,6,7,8}},

                  {{9,10,ll,12},{13,14,15,16}},

                  {{17,18,19,20},{21,22,23,24}};

Для багатовимірних масивів при ініціалізації дозволяється опускати лише величину першої розмірності:

int main()

{

  char x[][3]={{9,8,7},{6,5,4},{3,2,1}};

  for(int i=0; i<3; i++)

  {   

       for(int j=0; j<3; j++)

            printf("%d ", (int)x[i][j]);

       printf("\n");

  }

  return 0;

}

 

Наприклад, якщо необхідно виділити пам’ять для масиву з n цілих чисел типу long, це можна зробити за допомогою оператора:

long * fptr = (long *)malloc(n*sizeof(long));

Якщо необхідно виділити пам’ять під двовимірний масив розмірності m×n, це можна зробити за допомогою оператора

float* fptr = (float*)malloc(n*m*sizeof(float)).