welcome to the jungle biebh

shut the fuk off

Senin, 05 Oktober 2009

TUGAS JARKOM

1. Alasan mengapa sistem komunikasi dibuat dengan model layer berlapis.

Beberapa tahun yang lelu telah menjadi kejelasan bahwa banyak cara atau metode menyediakan pelindung (sheild) atau sesuatu yang dapat menyembunyikan programmer dari kekomplekan perangkat keras.Cara yang telah berangsur-angsur berkembang adalah dengan menentukan atau membuat sebuah lapis (layer)

Dan juga layer tersebut memiliki fungsi tersendiri yang telah ditentukan, sehingga dapat memudahkan dalam menganalisi sistem keamanan.


2. Perbedaan antara OSI dan TCP/IP.

  • OSI

Model Open Systems Interconnection (OSI)

Terdiri dari 7 layer yaitu :

- Application : Layer application yg berhubungan langsung dengan user

- Presentation : Menangani sintaks dan semantik dari infromasi yang ditransmisi

- Session : Dialog control, token management, sinkronisasi

- Transport : Menerima data dari upper layer à dan menyampaikan ke tujuan dengan benar

- Network : Control operasi network End for end

- Data Link : Penanganan frame (kumpulan bit)

Flow control + error control

- Physical : Berkaitan dengan raw bit I/O


  • TCP/IP

Transmission Control Protocol/Internet Protocol (TCP/IP)

adalah srtandar komunikasi data yang digunakan oelh komunikasi internet dan proses tukar menukar data dari satu computer ke computer lain di dalam jaringan internet.Protokol ini tidak dapat berdiri sendiri, karena memang protoko ini berupa kumpulan protocol (Protocol Suite). Protokol ini juga protocol yagn paling nayak digunakan saata ini. Data tersebut diimplementasikan dalam bentuk perangkat lunak(Soft ware) di system operasi. Istilah diberiakn kepada perangkat lunak in adalah TCP/IP stack.

Terdiri dari 4 layer yaitu :

- Application : layer application yg berhubungan langsung dengan user

- Transport : Menerima data dari upper layer à dan menyampaikan ke tujuan dengan benar

- Internet : Untuk addressing + routing

- Network access : Bertanggung jawab dalam proses pengiriman dan penerimaan data dan ke media fisik.

3 Layer teratas pada OSI layer, yaitu application, presentation, dan session direpresentasikan kedalam 1 lapisan Layer TCP/IP, yaitu layer application.

Layer Network pada OSI Layer direpresentasikan sebagai Layer Internet pada TCP/IP Layer, namun fungsi keduanya masih tetap sama.

Layer Network Access pada TCP/IP menggabungkan fungsi dari Layer DataLink dan Physical pada OSI Layer, dengan kata lain, Layer Network Acces merupakan representasi dari kedua layer paling bawah dari OSI Layer, yaitu DataLink dan Physical.

TCP/IP layer merupakan “Protocol Spesific”, sedangkan OSI Layer adalah “Protocol Independen”


3. Tugas masing - masing layer pada OSI dan TCP/IP.

  • Layer pada OSI

Layer 1 : Physical

Berfungsi menangani koneksi fisik jaringan dan prosedur-prosedur teknis yang berhubungan langsung dengan media transmisi fisik.

Layer 2 : Data Link

Berfungsi untuk mengendalikan lapisan fisik, mendeteksi serta mengkoreksi kesalahan yang berupa gangguan sinyal pada media transmisi fisik.

Layer 3 : Network

Berfungsi untuk menyediakan routing fisik, menentukan rute yang akan ditempuh.

Layer 4 : Transport

Berfungsi menginisialisasi, memelihara, serta mengakhiri komunikasi antar komputer,selain itu juga memastikan data yang dikirim benar serta memperbaiki apabila terjadi kesalahan.

Layer 5 : Session

Berfungsi mensinkronisasikan pertukaran data antar proses aplikasi dan mengkoordinasikan komunikasi antar aplikasi yang berbeda.

Layer 6 : Presentation

Berfungsi mengubah data dari layer diatasnya menjadi data yang bisa dipahami oleh semua jenis hardware dalam jaringan.

Layer 7 : Application

Merupakan interface pengguna dengan Layer OSI lainnya di layer inilah aplikasi-aplikasi jaringan berada seperti e-mail,ftp, http,danlain sebagainya. Tujuan dari layer ini adalah menampilkan data dari layer dibawahnya kepada pengguna.

  • Layer pada TCP/IP

Layer 1 : Network interface

Sama halnya dengan layer Data link dan Physical layer Pada OSI yang mengurusi banyak hal yang berhubungan dengan prosedur mekanis dan elektris dalam transmisi bit-bit.

Layer 2 : Internet

berfungsi untuk memberikan layanan dasar pengantaran data. salah satu protokol yang bekerja pada layer ini adlah IP (internet protokol) yang diantaranya berfungsi:

- mentransfer data dari Network access layer ke transport layer dan sebaliknya

- menangani datagaram termasuk fragmentasi dan defragmentasi

- menangani skema pengalamatan yang diguankan dalam pertukaran data- menangani proses routing

Layer 3 : Transport

Sama seperti pada model protokol OSI yaitu berfungsi menghubungkan antara aplication layer dan internet layer contohnya : UDP, TCP, SNMP (apliccation) menggunakan UDP, Telnet, FTP, SMTP (apliccation) menggunakan TCP

Layer 4 : Application

Adalah seperti seperti gabungan dari layer application, presentation dan session pada protokol model OSI,pada model protokol tcp/ip maka aplikasi yang dibuat dan berhubungan langsung dengan pemakai akan diletakkan di sini.contohnya : FTP, SMTP, HTTP, SNMP, RPC, DNs, dll.


Sedikit penjelasan :

1. Telnet
Telnet (Telecommunication Network) berguna untuk melakukan remote komputer lain menggunakan port 23. Port dipergunakan oleh lapisan atas untuk akses ke lapisan transport, yaitu setiap layanan mempunyai port masing-masing.
Gabungan antara port dan Ip Address disebut sebagai Socket yang berguna agar aplikasi ganda dapat menggunakan TCP/IP yang sama.
2. FTP
FTP (file transfer protocol) berfungsi memindahkan file dari suatu komputer kekomputer yang lain. Diman menggunakan sistem server-client. Jika mengambil file dari server disbut get, kalo mengirim ke server disebut put. FTP membutuhkan autentifikasi untuk dapat login yaitu berupa user dan password. FTP menggunakan port 21.
3. SMTP
SMTP (simple mail transfer protocol) berfungsi untuk pengaturan dan pengiriman email. SMTP menggunakan port 25. cara kerjanya sama dengan FTP yaitu menggunakan protocol TCP.
4. TFTP
TFTP (trivial file transfer protocol) adalah FTP dengan menggunakan port yang disederhakan dan menggunakan port 69. TFTP bekerja dengan protocol UDP yang connectionless oriented yang tidak mengontrol hasil perpindahan file. TFTP tidak membutuhkan user dan password.
5. Karberos
Karberos adalah protocol untuk keamanan (security) yang menggunakan peralatan yang disebut authentication server untuk memeriksa password dan enkripsi yang digunakan. Karberos banyak digunakan pada sistem operasi UNIX.
6. DNS
DNS (domain name server) berguna untuk menterjemahkan dari ip menjadi domain dan dari domain menjadi ip. Kita membutuhkan DNS, karena kita lebih mudah mengingat nama (domain) daripada kita mengingat IP.

Minggu, 21 Juni 2009

Tugas Arsitek komputer

Perbandingan RISC dan CISC[1]

Ditinjau dari perancangan perangkat instruksinya, ada dua arsitektur prosesor yang menonjol saat ini, yakni arsitektur RISC (Reduce Instruction Set Computer) dan CISC (Complex Instruction Set Computer). Prosesor CISC memiliki instruksi-instruksi kompleks untuk memudahkan penulisan program bahasa assembly, sedangkan prosesor RISC memiliki instruksi-instruksi sederhana yang dapat dieksekusi dengan cepat untuk menyederhanakan implementasi rangkaian kontrol internal prosesor. Karenanya, prosesor RISC dapat dibuat dalam luasan keping semikonduktor yang relatif lebih sempit dengan jumlah komponen yang lebih sedikit dibanding prosesor CISC. Perbedaan orientasi di antara kedua prosesor ini menyebabkan adanya perbedaan sistem secara keseluruhan, termasuk juga perancangan kompilatornya.

Sistem mikrokontroler selalu terdiri dari perangkat keras (hardware) dan perangkat lunak (software). Perangkat lunak ini merupakan deretan perintah atau instruksi yang dijalankan oleh prosesor secara sekuensial. Instruksi itu sendiri sebenarnya adalah bit-bit logik 1 atau 0 (biner) yang ada di memori program. Angka-angka biner ini jika lebarnya 8 bit disebut byte dan jika 16 bit disebut word. Deretan logik biner inilah yang dibaca oleh prosesor sebagai perintah atau instruksi. Supaya lebih singkat, angka biner itu biasanya direpresentasikan dengan bilangan hexa (HEX). Tetapi bagi manusia, menulis program dengan angka biner atau hexa sungguh merepotkan. Sehingga dibuatlah bahasa assembler yang direpresentasikan dengan penyingkatan kata-kata yang cukup dimengerti oleh manusia.

Bahasa assembler ini biasanya diambil dari bahasa Inggris dan presentasinya itu disebut dengan Mnemonic. Masing-masing pabrik mikroprosesor melengkapi chip buatannya dengan set instruksi yang akan dipakai untuk membuat program.

Biner Hexa Mnemonic

10110110 B6 LDAA ...

10010111 97 STAA ...

01001010 4A DECA ...

10001010 8A ORAA ...

00100110 26 BNE ...

00000001 01 NOP...

01111110 7E JMP ...

*) Sebagian set instruksi 68HC11

Pada awalnya, instruksi yang tersedia amat sederhana dan sedikit. Kemudian desainer mikroprosesor berlomba-lomba untuk melengkapi set instruksi itu selengkap-lengkapnya. Jumlah instruksi itu berkembang seiring dengan perkembangan desain mikroprosesor yang semakin lengkap dengan mode pengalamatan yang bermacam-macam. Mikroprosesor lalu memiliki banyak instruksi manipulasi bit dan seterusnya dilengkapi dengan instruksi-instruksi aritmatik seperti penjumlahan, pengurangan, perkalian dan pembagian. Seperti contohnya 68HC11 banyak sekali memiliki set instruksi untuk percabangan seperti BNE, BLO, BLS, BMI, BRCLR, BRSET dan sebagainya.

Perancang mikroprosesor juga memperkaya ragam instruksi tersebut dengan membuat satu instruksi tunggal untuk program yang biasanya dijalankan dengan beberapa intruksi. Misalnya pada 80C51 untuk contoh program berikut ini:

LABEL: ...

...

DEC R0

MOV A,R0

JNZ LABEL

*) Program 'decrement' 80C51

Program ini adalah program pengulangan yang mengurangi isi register R0 sampai register R0 menjadi kosong (nol). Intel menambah set instruksinya dengan membuat satu instruksi khusus untuk keperluan seperti ini:

LABEL: ....

DJNZ R0,LABEL

*) Instruksi 'decrement jump not zero' 80C51

Kedua contoh program ini hasilnya tidak berbeda. Namun demikian, instruksi kompleks seperti DJNZ mempermudah pembuat program. Set instruksi yang lengkap diharapkan akan semakin membuat pengguna mikroprosesor leluasa menulis program dalam bahasa assembler yang mendekati bahasa pemrograman level tinggi. Intel 80C51 yang dikembangkan dari basis prosesor 8048 dirilis pada tahun 1976 memiliki tidak kurang dari 111 instruksi. Tidak ketinggalan, 68HC11 dari Motorola yang populer di tahun 1984 dilengkapi dengan 145 instruksi. Karena banyak dan kompleksnya instruksi yang dimiliki 68HC11 dan 80C51, kedua contoh mikrokontroler ini disebut sebagai prosesor CISC.

Untuk melihat bagaimana perbedaan instruksi RISC dan CISC, mari kita lihat bagaimana keduanya melakukan perkalian misalnya c = a x b. Mikrokontroler 68HC11 melakukannya dengan program sebagai berikut:

LDAA #$5

LDAB #$10

MUL

*) Program 5x10 dengan 68HC11

Cukup tiga baris saja dan setelah ini accumulator D pada 68HC11 akan berisi hasil perkalian dari accumulator A dan B, yakni 5 x 10 = 50. Program yang sama dengan PIC16CXX, adalah seperti berikut ini:

MOVLW 0x10

MOVWF Reg1

MOVLW 0x05

MOVWF Reg2

CLRW

LOOP: ADDWF Reg1,0

CFSZ Reg2,1

GOTO LOOP

*) Program 5x10 dengan PIC16CXX

Prosesor PIC16CXX yang RISC ini, tidak memiliki instruksi perkalian yang khusus. Tetapi perkalian 5x10 itu sama saja dengan penjumlahan nilai 10 sebanyak 5 kali. Kelihatannya membuat program assembly dengan prosesor RISC menjadi lebih kompleks dibandingkan dengan prosesor CISC. Tetapi perlu diingat, untuk membuat instruksi yang kompleks seperti instruksi MUL dan instruksi lain yang rumit pada prosesor CISC, diperlukan hardware yang kompleks juga. Dibutuhkan ribuan gerbang logik (logic gates) transistor untuk membuat prosesor yang demikian. Instruksi yang kompleks juga membutuhkan jumlah siklus mesin (machine cycle) yang lebih panjang untuk dapat menyelesaikan eksekusinya. Instruksi perkalian MUL pada 68HC11 memerlukan 10 siklus mesin dan instruksi pembagiannya memerlukan 41 siklus mesin.

Sebagai perbandingan jumlah instruksi pada prosesor RISC, COP8 hanya dilengkapi dengan 58 instruksi dan PIC12/16CXX hanya memiliki 33 instruksi saja. Untuk merealisasikan instruksi dasar yang jumlah tidak banyak ini, mikroprosesor RISC tidak memerlukan gerbang logik yang banyak. Karena itu dimensi dice IC dan konsumsi daya prosesor RISC umumnya lebih kecil dibanding prosesor CISC. Bukan karena kebetulan, keluarga mikrokontroler PICXX banyak yang dirilis ke pasar dengan ukuran mini. Misalnya PIC16C54s adalah mikrokontroler DIP 18 pin.

Sekarang kita akan membandingkan lamanya eksekusi program persamaan y=ax2 + bx + c dengan memperlihatkan proses-proses yang terjadi didalamnya. Dibawah ini akan ditampilkan program dengan intruksi RISC dan CISC:

Program CISC dengan 80C51:

MOV A, VAR_a à IF De DF E

MOV B, VAR_x à IF De DF E

MUL AB à IF De E

MOV B, VAR_x à IF De DF E

MUL AB à IF De E

MOV R0, A à IF De E

MOV A, VAR_b à IF De DF E

MOV B, VAR_x à IF De DF E

MUL AB à IF De E

ADD A, R0 à IF De E

ADD A, VAR_c à IF De DF E

MOV VAR_y, A à IF De E S

*) Program diatas diasumsikan nilai y-nya tidak akan lebih dari 1 byte.

Program RISC dengan PIC16CXX:

MOVF VAR_x, 0 à IF De E

MOVWF VAR_temp à IF De E S

MOVWF VAR_temp2 à IF De E S

CLRW à IF De E

LOOP: ADDWF VAR_a,0 à IF De E

CFSZ VAR_temp,1 à IF De E

CFSZ VAR_temp2,1 à IF De E

GOTO LOOP à IF De E

MOVWF VAR_ax2 à IF De E S

CLRW à IF De E

(1) (2) (1) (2)

LOOP2:ADDWF VAR_b, 0 à IF De E

CFSZ VAR_temp,1 à IF De E

GOTO LOOP2 à IF De E

ADDWF VAR_ax2, 0 à IF De E

ADDWF VAR_c, 0 à IF De E

MOVWF VAR_y à IF De E S

*) Prosesor RISC ini mempunyai RAM yang sebenarnya adalah merupakan register. Jadi, tidak memerlukan Data Fetch (DF) untuk proses pengambilan data dalam prosesor ini. Asumsi VAR_temp dan VAR_temp2 adalah 1 sehingga tidak terjadi looping.

Dengan beranggapan bahwa Instruction Fetch (IF), Data Fetch (DF), dan Store (S) membutuhkan waktu yang jauh lebih lama dari Decode (De) dan Execute (E) maka dapat diperhitungkan waktu yang dibutuhkan tiap prosesor jika x=1:

CISC dengan 8051:

12(IF) + 12(De) + 6(DF) + 12(E) + 1(S) à (parameter waktu: A >>> B)

maka waktu yang dibutuhkan,

A(12+6+1) + B(12+12) 19A + 24B

RISC dengan PIC16CXX:

Dengan mengambil waktu terlama dari tiap cycle-nya maka waktu yang dibutuhkan, misal jika dalam suatu cycle (menurun dalam satu kolom) terdapat IF, De, E, S; yang dalam waktu dapat ditulis A, B, B, A maka yang diambil adalah A (waktu terlama). Kedua A tidak dijumlah karena bekerja dalam sistem pipeline, yang dapat dilakukan secara bersamaan dalam satu cycle (syarat: dalam sistem ini tidak boleh ada proses yang sama pada satu cycle). Sehingga waktu yang dibutuhkan,

A(16+1) + B(1+1) 17A + 2B

Dari hasil diatas dapat dilihat bahwa walaupun program dengan instruksi RISC lebih panjang daripada program dengan instruksi CISC. Namun lama waktu yang dibutuhkan RISC untuk menjalankan program dan mendapatkan hasil akhir yang diinginkan, jauh lebih singkat dibandingkan dengan CISC. Dengan begitu, terbukti sudah bahwa prosesor RISC mampu beroperasi lebih cepat dibandingkan dengan prosesor CISC.

1


Superscalar[1]


Salah satu jenis dari arsitektur, dimana superscalar adalah sebuah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel.

Merupakan salah satu rancangan untuk meningkatkan kecepatan CPU. Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis.

Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya.

Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan.

Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada.

Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut.

Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya..

Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.

Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut.

Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor.




pustaka:

[1]RISC vs CISC

[2]Superscalar