Senin, 23 Oktober 2017



Tugas: Organisasi dan Arsitektur Komputer

ARM Cortex M0

Sejarah ARM
Setelah sukses dengan komputer BBC Micro, Acorn Computers Ltd mempertimbangkan berpindah dari prosesor MOS Technology 6502 ke pasar yang akan segera didominasi oleh IBM PC yang diluncurkan pada tahun 1981. Acorn Business Computer (ABC) pada saat itu membutuhkan prosesor berikutnya untuk dapat bekerja pada platform BBC Micro. Namun prosesor seperti Motorola 68000 dan National Semiconductor 32016 tidak cocok, sedangkan prosesor 6502 tidak mencukupi untuk kebutuhan antar muka grafis.
Akhirnya Acorn mendesain prosesornya sendiri dengan proyek Berkeley RISC oleh engineernya. Kunjungan ke Western Design Center di daerah Phoenix meyakinkan engineer Acorn Steve Furber dan Sophie Wilson bahwa mereka tidak membutuhkan sumber daya dan fasilitas penelitian yang besar.
Wilson mengebangkan instruction set, mensimulasikan prosesor pada BBC Basic yang menjalankan BBC Micro dengan prosesor 6502 kedua. Hal tersebut membuktikan kepada engineer Acorn bahwa mereka berada pada proses yang tepat. Sebelum melangkah lebih jauh, mereka membutuhkan sumber daya yang lebih. Setelah Wilson mendapat persetujuan dari CEO Acorn, Hermann Hauser, tim kecil melanjutkan implementasi ke perangkat keras.
Sebuah prosesor ARM dari Conexant yang umum digunakan pada Router.


https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Conexant_arm.jpg/220px-Conexant_arm.jpg

Proyek Acorn RISC Machine resmi dimulai pada Oktober 1983. VLSI Technology, Inc dipilih sebagai mitra dalam memproduksi chip silikon di mana sebelumnya telah memproduksi ROM dan custom chip sebelumnya. Proses desain dipimpin oleh Wilson dan Furber, dengan tujuan utama latensi rendah (low-latency) pada penanganan input/output (interupsi) seperti pada prosesor MOS Technology 6502. Arsitektur 6502 memberikan pengembang mesin yang cepat dalam pengaksesan memory tanpa harus menggunakan perangkat direct access memory yang mahal. VLSI memproduksi chip ARM pertama kali pada 26 April 1985 yang berhasil bekerja dan dikenal sebagai ARM1. Dan disusul dengan ARM2 yang diproduksi pada tahun berikutnya.
Pengaplikasian prosesor ARM pertama kali adalah prosesor kedua dari BBC Micro, untuk simulasi dalam pengembangan chip pendukung (VIDC, IOC, MEMC) dan untuk mempercepat penggunaan perangkat lunak CAD dalam pengembangan ARM2. Wilson menulis BBC Basic dalam bahasa assembly ARM, di mana kode sangat padat sehingga ARM BBC Basic sangat cocok untuk setiap emulator ARM.
ARM2 mempunyai lebar bus sebesar 32-bit, 26-bit (64 Mbyte) alamat memory dan 16 buah register 32-bit. Program code harus ada dalam 64 Mbyte pertama dari memory, sebagaimana program counter dibatasi pada 26-bit karena 6-bit atas pada register 32-bit digunakan sebagai status flag. Kemungkinan besar ARM2 merupakan prosesor 32-bit paling sederhana di dunia dengan hanya 30.000 transistor bila dibandingkan dengan Motorola 68000 dengan 70.000 transistor. Kesederhanaan ini diperoleh karena ARM tidak mempunyai microcode yang mencakup seperempat hingga sepertiga transistor pada Motorola 68000. Selain itu ARM pada saat itu tidak memiliki cache memory. Hal ini membuat ARM sebagai prosesor dengan konsumsi daya rendah namun performansi yang lebih baik daripada Intel 80286. Penerusnya yaitu ARM3 mempunyai 4 kByte cache yang meningkatkan performansi.
Pada akhir 1980-an, Apple Computer dan VLSI Technology memulai kerja sama dengan Acorn untuk prosesor ARM berikutnya. Kerjasama ini sangat penting hingga Acorn melepas tim tersebut sebagai perusahaan baru bernama Advanced RISC Machines Ltd. pada tahun 1990. Sehingga seringkali ARM disebut sebagai Advanced RISC Machine disamping Acorn RISC Machine. Dan pada tahun 1998 Advanced RISC Machines menjadi ARM Ltd.
Hasil kerja sama Apple-ARM menghasilkan ARM6 pada awal tahun 1992. Apple menggunakan ARM6 (ARM 610) sebagai prosesor pada PDA Apple Newton dan pada tahun 1994 Acorn menggunakan ARM6 pada komputer PC RISC. Pada frekuensi 233 MHz, prosesor ini hanya mengonsumsi daya sebesar 1 Watt dan versi berikutnya lebih kecil dari itu.
Inti prosesor ARM tidak mengalami perubahan ukuran yang signifikan. Pada ARM2 terdapat 30.000 transistor sedangkan pada ARM6 bertambah hingga 35.000 transistor saja. ARM Ltd. hanya menjual IP (Intelectual Property) core di mana perusahaan lain dapat memproduksi mikrokontroller dan prosesor berdasarkan rancangan ARM. Implementasi yang dinilai paling berhasil adalah ARM7TDMI yang terjual hingga ratusan juta chip. Ide dasarnya adalah produsen chip komputer dapat membuat CPU lengkap berdasarkan rancangan ARM dan dapat dibuat pada pabrik semikonduktor lama serta memberikan performansi yang tinggi pada harga yang rendah. Arsitektur ARM dapat ditemui di banyak smartphone, PDA dan perangkat genggam lain.

Mikrokontroler Nuvoton NUC140 (ARM Cortex M0)
NUC140 series adalah ARM Cortex mikrokontroler dengan M0. Cortex M0 adalah prosesor ARM terbaru dengan kinerja 32 bit dengan biaya setara dengan mikrokontroler 8 bit. ARM Cortex­M0 mempunyai peripheral­peripheral yang terintegrasi dengan prosesor. Peripheral­peripheral tersebut merupakan bagian dari desain ARM Cortex­M0. Karena itu, peripheral­peripheral tersebut terdapat di semua mikroprosesor yang berbasis ARM Cortex­M0, walaupun dibuat oleh manufaktur yang berbeda. Selain itu, peripheral­peripheral yang terdapat di ARM Cortex­M0, juga terdapat di prosesor ARM Cortex­M yang lain (ARM Cortex­M1, ARM Cortex­M3, ARM Cortex­M4), sehingga semua prosesor di keluarga ARM Cortex­M kompatibel satu sama lainnya.
Kompatibilitas Set Instruksi Nuvoton NUC140 ARM Cortex­M0
Set instruksi yang digunakan oleh ARM Cortex­M0 dinamakan set instruksi Thumb. Set instruksi ARM Cortex­M0 adalah subset dari set instruksi ARM Cortex­M yang lain, sehingga program yang dikompile untuk ARM Cortex­M0 kompatibel dengan prosesor ARM Cortex­M yang lain.

Selain itu, ARM Cortex­M0 juga kompatibel dengan set instruksi prosesor ARM dari seri klasik dan Cortex­A (ARM Cortex Application Processor).
NuMicro seri NUC1xx memiliki inti ARM Cortex M0 yang tertanam dengan kecepatan hingga 50 MHz, dilengkapi dengan memori flash untuk program 32KB/64KB/128KB, SRAM sebesar 4KB/8KB/16KB dan memori flash loader untuk ISP (In System Programming) sebesar 4KB. Selain itu juga dilengkapi dengan berbagai macam periperal, seperti GPIO, Timer, Watchdog Timer, RTC, PDMA, UART, SPI/MICROWIRE, I2C, I2S, PWM, LIN, CAN, PS2, USB 2.0 FS Device, ADC 12 bit, komparator analog, Low Voltage Reset, dan Brown Out Detector.

a)      KELEBIHAN
1.  Berkaitan dengan penyederhanaan kompiler, dimana tugas pembuat kompiler untuk menghasilkan rangkaian instruksi mesin bagi semua pernyataan HLL.
2.   Instruksi mesin yang kompleks seringkali sulit digunakan karena kompiler harus menemukan kasus-kasus yang sesuai dengan konsepnya.
3.  Pekerjaan mengoptimalkan kode yang dihasilkan untuk meminimalkan ukuran kode, mengurangi hitungan eksekusi instruksi, dan meningkatkan pipelining jauh lebih mudah apabila menggunakan RISC dibanding menggunakan CISC.
4.  Arsitektur RISC yang mendasari PowerPC memiliki kecenderungan lebih menekankan pada referensi register dibanding referensi memori, dan referensi register memerlukan bit yang lebih sedikit sehingga memiliki akses eksekusi instruksi lebih cepat.
5.  Kecenderungan operasi register ke register akan lebih menyederhanakan set instruksi dan menyederhanakan unit kontrol serta pengoptimasian register akan menyebabkan operand-operand yang sering diakses akan tetap berada dipenyimpan berkecepatan tinggi.
6.   Penggunaan mode pengalamatan dan format instruksi yang lebih sederhana.

b)      KEKURANGAN
1.  Program yang dihasilkan dalam bahasa simbolik akan lebih panjang (instruksinya lebih banyak).
2.  Program berukuran lebih besar sehingga membutuhkan memori yang lebih banyak, ini tentunya kurang menghemat sumber daya.
3.  Program yang berukuran lebih besar akan menyebabkan menurunnya kinerja, yaitu instruksi yang lebih banyak artinya akan lebih banyak byte-byte instruksi yang harus diambil. Selain itu,Pada lingkungan paging akan menyebabkan kemungkinan terjadinya page fault lebih besar.


 


Sumber:
http://tekno.kompas.com/read/2013/03/20/14413846/mengenal.arm.sang.penguasa.prosesor.mobile
https://id.wikipedia.org/wiki/Arsitektur_ARM
http://bimokurnia.blogspot.co.id/2016/06/konsep-kekurangan-dan-kelebihan-dari.html
http://kl601.ilearning.me/2015/10/15/arsitektur-mikrokontroller/

Senin, 05 Juni 2017

Listing Program Parking Sensor
Program
$mod51
org 100h

mov p1,#0ffh
mov p2,#000h
mov p3,#000h

mulai : jnb p1.0,motor1
            jnb p1.1,motor2
            sjmp mulai

motor1 :  jb p1.0,motor11
               jnb p1.2, motor1s
               mov p2,#01h
               sjmp motor1 
      
motor11 : jnb p1.3, motor11s
                 mov p2, #02h
                 sjmp motor11

motor2 : jb p1.1,motor21
              jnb p1.4,motor2s
              mov p2,#40h
              sjmp motor2  
                
motor21 : jnb p1.5, motor22s
                mov p2, #80h
                sjmp motor21                                     
motor1s : clr p2.0
                sjmp motor1
                   
motor11s : clr p2.1
                  sjmp mulai

motor2s : clr p2.6
                sjmp motor2
                       
motor22s : clr p2.7
                  sjmp mulai               
end




    
$mod51
org 100h



Inisialisasi awal program
Pengalamatan awal program

mov p1,#0ffh
mov p2,#000h
mov p3,#000h


Memberikan nilai 0ffh ke port1
Memberikan nilai 000h ke port2
Memberikan nilai 000h ke port3

mulai : jnb p1.0,motor1
            jnb p1.1,motor2
            sjmp mulai


Lompat ke label mulai

motor1 :  jb p1.0,motor11
               jnb p1.2, motor1s
               mov p2,#01h
               sjmp motor1 
Memberikan nilai 01h ke port 2
Lompat ke label motor 1      

motor11 : jnb p1.3, motor11s
                 mov p2, #02h
                 sjmp motor11


Memberikan nilai 02h ke port 2
Lompat ke label motor11

motor2 : jb p1.1,motor21
              jnb p1.4,motor2s
              mov p2,#40h
              sjmp motor2  


Memberikan nilai 40h ke port 2
Lompat ke label motor 2
                
motor21 : jnb p1.5, motor22s
                mov p2, #80h
                sjmp motor21                                     
motor1s : clr p2.0
                sjmp motor1


Memberikan nilai 80h ke port 2
Lompat ke label motor21
Reset nilai pada port 2.0
Lompat ke label motor1
                   
motor11s : clr p2.1
                  sjmp mulai
Reset nilai pada port 2.1
Lompat ke label mulai

motor2s : clr p2.6
                sjmp motor2
 Reset nilai pada port 2.6
Lompat ke label motor2

motor22s : clr p2.7
                  sjmp mulai               
end


Reset nilai pada port 2.7
Lompat ke label mulai
Mengakhiri program





























Minggu, 16 April 2017


https://wibawaadiputra.files.wordpress.com/2015/05/picture2.png

Algoritma:
1. Langkah Pertama pada bagan Start dimana dari flowchart di atas merupakan suatu kejadian ketika rangkaian bekerja, rangkaian aktif saat menerima tegangan sumber

2. Langkah Kedua Photodioda dipasangkan sejajar dengan infrared yang menyala.

3. Langkah Ketiga Sensor akan bekerja dengan membaca input dari photo dioda.

4. Langkah Keempat Jika sensor menerima cahaya maka akan kembali ke kondisi awal jika tidak maka akan mengaktifkan mikrokontroler dan menjalankan program

5. Langkah Kelima Mikrokontroler akan menjalankan program perintah – perintah yang sudah terdapat didalamnya

6. Langkah Keenam Perintah tersebut kemudian digerakan ke perangkat output sehingga motor bergerak dan membuka palang pintu.

7. Langkah Ketujuh pada bagan End dimana dari flowchart diatas
ketika cahaya yang diterima photodioda tidak dihalangi maka motor akan bekerja dan palang pintu akan tertutup jika keadaan awal saat palang pintu tertutup maka tidak melakukan apa apa.

Sumber:

 https://wibawaadiputra.wordpress.com/2015/05/02/kasus-elektro-flowchart-parking-sensor/