, об'єднаним в регістровий файл. Завдяки цьому АЛУ виконує одну операцію (читання вмісту регістрів, виконання операції і запис результату назад в регістровий файл) за один машинний цикл.
Рис. 1.2. Архітектура ядра мікроконтролера AT90S2333
Мікроконтролер AT90S2333 побудований за Гарвардської архітектурі, яка характеризується роздільною пам'яттю програм і даних, кожна з яких має власні шини доступу до них. Така організація дозволяє одночасно працювати як з пам'яттю програм, так і з пам'яттю даних. Поділ шин доступу (Мал. 1.1) дозволяє використовувати для кожного типу пам'яті шини даних різної розрядності, а також реалізувати конвейеризацию. Конвейеризация полягає в тому, що під час виконання поточної команди проводиться вибірка з пам'яті і дешифрация коду наступної команди.
На відміну від RISC-мікроконтролерів інших фірм, в мікроконтролері AT90S2333 використовується 2-рівневий конвеєр, а тривалість машинного циклу складає всього один період коливань кварцового резонатора. У результаті він може забезпечувати ту ж продуктивність, що і RISC-мікроконтролери інших фірм, при більш низькій тактовій частоті.
Структурна схема мікроконтролера наведена в Додатку 2.
Організація пам'яті мікроконтролера виконана за Гарвардської архітектурі, в якій розділені не тільки адресні простори пам'яті програм і пам'яті даних, але також і шини доступу до них. Причому пам'ять даних складається з трьох областей: реєстрова пам'ять, статичне ОЗУ і пам'ять на основі EEPROM. У зв'язку з тим, що peгістровая пам'ять знаходиться в адресному просторі ОЗУ, про ці двох областях пам'яті зазвичай говорять як про одну. Кожна з областей (ОЗУ і EEPROM) розташована в своєму адресному просторі.
Узагальнена карта пам'яті мікроконтролера AT90S2333 наведена на малюнку 1.3.
Слід зауважити, що оскільки мікроконтролер має 16-розрядну систему команд, обсяг пам'яті програм на малюнку 1.3 зазначений не в байтах, а в 16-розрядних словах; символ «$» перед числом означає, що це число записано в шістнадцятковій системі числення.
Рис. 1.3. Карта пам'яті мікроконтролера AT90S2333
Пам'ять програм призначена для зберігання команд, керуючий функціонуванням мікроконтролера. У пам'яті програм зберігаються також різні константи, не змінні під час роботи програми. Пам'ять програм в мікроконтролері являє собою стирані ППЗУ (FLASH-ПЗУ). Оскільки всі команди займають у пам'яті 16 біт (деякі - 32 біта), пам'ять програм має 16-розрядну організацію. Відповідно, обсяг пам'яті становить 1024 розрядних слова.
Для адресації пам'яті програм використовується лічильник команд (PC - Program Counter). Розмір лічильника команд становить від 9 до 12 розрядів залежно від обсягу пам'яті, що адресується.
За адресою $ 000 пам'яті програм знаходиться вектор скидання. Після ініціалізації (скидання) мікроконтролера виконання програми починається з цієї адреси (фірма «Atmel» рекомендує розміщувати за цією адресою команду відносного переходу до ініціалізацій частини програми). Починаючи з адреси $ 001 розташовується таблиця векторів переривань. Її розмір становить 13 векторів. При виникненні переривання після збереження в стеці поточного значення лічильника команд відбувається виконання команди, розта...