Mengatur dan mengendalikan alat-alat input dan output.
Mengambil instruksi-instruksi dari memori utama.
Mengambil data dari memori utama (jika diperlukan) untuk diproses.
Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
Menyimpan hasil proses ke memori utama.
Dengan demikian, ada tiga macam memori yang dipergunakan di dalam sistem komputer, yaitu:
1. Register, digunakan untuk menyimpan instruksi dan data yang sedang diproses.
2. Main memory, dipergunakan untuk menyimpan instruksi dan data yang akan diproses dan hasil pengolahan.
3. Secondary storage, dipergunakan untuk menyimpan program dan data secara permanen.
Ada banyak register yang terdapat pada CPU dan masing-masing sesuai dengan fungsinya. Di bawah ini akan diberikan penjelasan secara garis besar dari masing-masing register:
1. Instruction Register (IR) digunakan untuk menyimpan instruksi yang sedang diproses.
2. Program Counter (PC) adalah register yang digunakan untuk menyimpan alamat lokasi dari memori utama yang berisi instruksi yang sedang diproses. Selama pemrosesan instruksi oleh CPU, isi dari PC diubah menjadi alamat dari memori utama yang berisi instruksi berikutnya yang mendapat giliran akan diproses, sehingga bila pemrosesan sebuah instruksi selesai maka jejak instruksi selanjutnya di memori utama dapat dengan mudah didapatkan.
3. General purpose register, yaitu register yang mempunyai kegunaan umum yang berhubungan dengan data yang sedang diproses. Sebagai contoh, register jenis ini yang digunakan untuk menampung data yang sedang diolah disebut dengan operand register, sedang untuk menampung hasil pengolahan disebut accumulator.
4. Memory data register (MDR) digunakan untuk menampung data atau instruksi hasil pengiriman dari memori utama ke CPU atau menampung data yang akan direkam ke memori utama dari hasil pengolahan oleh CPU.
5. Memory address register (MAR) digunakan untuk menampung alamat data atau instruksi pada memori utama yang akan diambil atau yang akan diletakkan.
Sebagai tambahan dari register, beberapa CPU menggunakan suatu cache memory yang mempunyai kecepatan sangat tinggi dengan tujuan agar kerja dari CPU lebih efisien dan mengurangi waktu yang terbuang. Tanpa cache memory, CPU akan menunggu sampai data atau instruksi diterima dari memori utama, atau menunggu hasil pengolahan selesai dikirim ke memori utama baru proses selanjutnya bisa dilakukan. Padahal proses dari memori utama lebih lambat dibanding kecepatan register sehingga akan banyak waktu terbuang. Dengan adanya cache memory, sejumlah blok informasi pada memori utama dipindahkan ke cache memory dan selanjutnya CPU akan selalu berhubungan dengan cache memory.