RecentReview

CISC 구조와 RISC 구조

CISC 구조와 RISC 구조

tmddls4562 contents are below.

References: 05-tmddls4562 contents: Go Click
Other Blog: Blog ArtRobot (Title: CISC 구조와 RISC 구조) More …
Publish Date: (2024-07-01|4:39 pm), Modified Date: (2024-07-01|4:39 pm)


— Blog Post Contents
선릉 이자카야
좋은 사람들과 좋은 곳에서 시샤모구이 그리고 북극곰의 눈물 cheers 잘먹고 갑니다 man~~♡ (Publish Date: 2024-01-09)

PCIe – Basic concept
1. PCIe 는 이전 버스 모델과 비교할때 병렬에서 직렬 인터페이스로 넘어간 것이 중요한 차이점이다. 많은 고속 직렬 통신이 그러하듯 PCIe 도 양방향 연결(bi-directional connection) 을 사용하고, 데이터를 보내는 것과 받는것을 동시에 할 수 있다. 그 중에서도 pcie 는 bi directional한 통신을 위해 'dual simplex'방식을 사용한다. simplex가 의미하는 것은 한 방향 통신을 위해 하나의 physical layer가 사용된다는 것이고, dual 이라는 것은 말 그대로 두개라는 뜻이다. PCIe 에서 각 device 를 연결하는 path 를 link 라고 한다. 그리고 이 link 는 하나 이상의 Lane 으로 구성된다. link를 구성하는 lane 은 스펙 상으로 1,……. (Publish Date: 2022-05-07)

PCI-X 2.0 , parrallel bus model 의 한계
1. PCI-X 가 아무리 PCI 에 비해 성능을 올렸다 해도, 근본적으로 parallel bus model 특유의 한계는 존재했다. 아래의 그림은 Parallel bus 의 data flow 를 보여준다. 기본적으로 'common clock' 또는 'distributed clock' 을 쓰는데, 데이터는 clock edge 에서transmitter 에서 출발해서 next clock edge 에 receiver 에게 래치 된다. 즉 timing budget 이 clock period 이다. 이 말은 주파수가 올라갈수록 timing budget 이 줄어든다는 의미이다. 2. 첫번째 문제점은 signal skew 이다. multiple bits 가 한번에 보내지면, 각각의 bit는 살짝씩 다른 delay 를 가지고, 각기 다른 시간에 receiver 에게 도착한다. 만약 이……. (Publish Date: 2022-05-06)

FPGA 학습 관련 질문
제 블로그 보시는 분이 메일을 주셨습니다. 제가 누구에게 무엇인가를 알려줄 실력도 절대 아니고, 경험도 부족하지만 그래도 이 정보가 '이제 막 무언가를 시작하려는 분'께 도움이 되었으면 좋겠습니다. 저도 랩에서 잠시 인턴 하면서, 공부해보지도 않은 분야의 프로젝트를 갑작스레 맡기도 한적이 있는데 사실 이러한 것을 만났을 때 가장 힘든 것이 '초기 setting' 이거든요. 이런건 알려주는 사람이 거의 없기도 하고.. (결론은 해당 툴의 매뉴얼을 빨리 찾고 구글링을 잘해야한다..) 질문은 아래와 같습니다. ================&#x3……. (Publish Date: 2022-05-04)

요즘 근황 및 업무
안녕하세요. 벌써 7개월이란 시간이 흘렀네요. 분명 입사초기때보다는 아는 것이 늘어난것 같지만, 아직도 정말 많이 부족함을 느낍니다. 분명 학부생 3학년, 4학년 1학기까지는 무조건 아날로그로 가야겠다하고 그부분만 공부했었습니다. 컴퓨터 구조나 마이크로프로세서 관련된 과목도 수강을 안하고 , c도 대충대충 하고, 오직 아날로그 공부만 했었어요. 베릴로그를 배우려고 했던 것도, Analog Mixed Signal 쪽이 확실히 어려운 분야이고하니 돈 많이 주겠다 싶어서 결정한 것이었습니다. 진입장벽이 높다 = 대우가 좋고, 돈을 많이 준다 라고 생각했거든요 그렇게 4학년 여름방학때 베릴로그를 처음접하고, 프로젝트 하나 해보고 운이……. (Publish Date: 2022-04-23)

PCI-X – 2, No Snoop(NS), Relaxed Ordering (RO)
1. PCI-X 장치들은 Message Signaled Interrupt (MSI) 기능을 가진다. 이는 기존의 인터럽트 아키텍처에서 일반적으로 요구되던 '여러 장치들 간의 인터럽트를 공유'의 필요성을 줄이기 위해서 개발된 기능이다. MSI 를 사용하는 장치는 인터럽트 request 를 생성하기 위해, CPU에게 전달될 인터럽트를 위해 미리 정의된 address range를 사용해서 memory write transaction 을 initiate 한다. 이때 write되는 data는 device와 관련된 unique interrupt vector이다. 인터럽트 number를 가지고 있는 CPU는 장치의 인터럽트 서비스 루틴으로 즉시 점프할 수 있고 이를 통해, 인터럽트를 생성한 device 를 찾는 과정을 가질 필요가 없다. ……. (Publish Date: 2022-04-23)

PCI-X – 1, Transaction , Split Transaction
1. PCI-X 는 HW/SW 적으로 모두 PCI 와 호환되지만, 성능은 더 좋다. 즉, PCI-X 는 PCI 내부에서 사용되는 signal model 을 변경하지 않고,버스 타이밍을 개선하기 위해 몇가지 트릭을 사용했다. 2. 먼저 내부적으로 PLL 을 사용하였다.이를 통해 output 이 조금더 빨리 driven 될 수 있었고, input 을 조금 늦게 sampling 하여 버스 타이밍을 개선하였다. 또 PCI-X 의 input 은 input 핀에 registered 되어 setup time 이 단축되었고, 이를 통해 bus의 propagation 되는 시간(budget)을 증가시켜 더 높은 클럭주파수가 사용될 수 있었다. 3. 간단하게 PCI 와 PCI-X 의 transaction model 을 비교해보자. 위 게시글을 통해 먼저 PCI 의 transacti……. (Publish Date: 2022-04-20)

PCI, Peripheral Component Interface – 5, 한계 그리고 PCI-X 의 등장
1. 더 높은 대역폭을 제공하기 위해, PCI 의 스펙은 64비트의 더 wide한 버전과, 66MHz 의 더 빠른 버전을 모두 지원하도록 업데이트 되어 초당 533MB 의 rate 를 달성하였다. 2. 기존 1세대 버전인 PCI 보다 버스의 처리량이 2배 증가했지만 (33MHz) , 위 그림으로 부터 단점을 알 수 있다. 게시글 1편에서 언급한 reflected wave 문제 때문에 버스에 달수있는 load 의 수가 크게 제한된다는 것이다. 왜냐하면 속도를 두배로 올린다는 것은 reflected wave 의 timing budget 이 절반으로 줄어든다는 것이기 때문이다. 3. 그 결과 각 버스마다 하나의 애드인 카드만 지원되었다. 장치를 추가하면 추가할수록 비용과 보드가 요구하는 면적이 늘어……. (Publish Date: 2022-04-17)

PCI, Peripheral Component Interface – 4, Address Space Map
1. PCI 아키텍쳐는 memory map , IO map , configuration space map 이 세가지의 address space를 지원한다. x86 프로세서는 memory space 와 IO space에 바로 access 할 수 있다. PCI device 는 프로세서 memory address space 에 매핑될 수 있으며, 32비트 또는 64비트 메모리 addressing 을 지원한다. IO address space 에서 PCI 스펙 자체는 32비트 address 를 지원하지만, x86 CPU는 IO space 에 오직 16비트만 사용하기 때문에, 많은 플랫폼들은 IO space 를 16비트 길이에 해당하는 사이즈인 64KB 로 제한했다. 2. 위에서 언급하지 않은 configuratoin space 는 CPU 가 간접적으로만 access 할 수 있는 address space 이다.(그럼 무엇을 통……. (Publish Date: 2022-04-16)

PCI, Peripheral Component Interface – 3, error handling
1. PCI Master 가 target device 에 transaction 을 initiate 하는데 target device 가 준비가 되지 않은 경우, target 은 transaction retry signal 을 보낸다. 2. 다시 말하자면, target device 는 transaction 할 data가 준비되지 않았을 때, 두가지 선택권을 가지게 된다. 첫번째는 data phase 에 wait-states 를 insert 하는 것이다. 만약 짧은 wait-state 가 필요할 경우엔 나쁘지 않은 선택이다. 그런데 만약 target device 가 시간이 더 필요하다면, 두번째 선택을 해야한다. STOP# 이라고 불리는 신호와 retry signal 을 보내는 것이다. 이 retry 는 master가 data를 전송하지 않고 bus cycle을 조기에 종료하도록 지시한다. 이렇게 함……. (Publish Date: 2022-04-15)

PCI, Peripheral Component Interface – 2, Transaction Mode
1. PCI는 data transfer 를 위해 이전에 사용되던 버스들이 사용하던 3가지 model 을 그대로 사용했다. Programmed I/O (PIO), Peer to Peer, DMA. 2. PIO 는 PC 초창기 시절에 많이 사용되었는데, 왜냐면 설계자들이 transaction management logic에 대한 cost나 복잡성을 더하기를 꺼려했기 때문이다. 사실 device 가 아무리 성능이 좋아 transaction 을 management 한다고 해도, 코어 프로세서보다 느리기 마련이기에 PIO는 프로세서가 모든 작업을 처리하도록 설계되었다. 예를들어 PCI device 가 메모리에 데이터를 입력하기 위해 CPU 에 인터럽트를 건다면, CPU는 PCI 장치의 데이터를 CPU 내부 레지스터로 읽은 다음, 그 레지스터를 메모……. (Publish Date: 2022-04-13)

PCI, Peripheral Component Interface – 1
1. 1990 년대에 PC 주변 기기들의 연결을 위한 버스로 PCI(Peripheral Component Interface) 가 개발되었다. 당시 표준은 IBM 의 AT 버스 였다. (업계에선 ISA 버스라고 불렸다.) ISA 는 16비트 컴퓨터에는 충분했지만 32비트 컴퓨터에 사용하기엔 대역폭과 기능이 매우 부족했고, pin 이 많은 대형 커넥터를 사용했기 때문에 여러 대체 버스들이 제안되었다. 그런데 다른 버스들 보다 단점이 적고 장점이 많은 PCI 가 표준으로 받아들여줬고, 여러 PC시장의 major vendor 들이 PCI -SIG 라는 그룹을 형성했다. 결과적으로 PCI 버스의 성능은 ISA 버스보다 월등히 높았다. 2. PCI 를 사용하는 device들은 configuration space라고 불리는 각 devi……. (Publish Date: 2022-04-07)

리눅스 4 – chmod
ls -al 을 입력하면 나오는 내용을 살펴보자. 맨 첫글자가 d 이면 directory, – 이면 file 이다. 이후 9글자는 세 덩이로 구성된다. 예를 들어 rwxrwxrwx permission에 해당하는 부분으로 r : read w : write x : execute(실행) 을 나타낸다. 첫 덩이의 rwx는 owner에 대한 권한, 두 번째 덩이의 rwx는 group에 대한 권한, 마지막 덩이의 rwx는 everyone에 대한 권한이다. 예를들어 owner에게는 읽기,쓰기,실행의 모든 권한이 있고 나머지에겐 읽기,실행의 권한만 있다면 rwxr-xr-x 에 해당한다. 위 권한은 이진수로 표현할시 111101101인데, 세덩이씩 나누면 십진수로 7 5 5에 해당한다. 권한을 바꾸기 위해선 chmod 755 <file name> 의 명……. (Publish Date: 2021-10-14)

리눅스 3 – 프로세스 명령어
ps : process status. 시스템에서 실행중인 프로세스 정보출력 ps -ef : ps에서 더해서 User ID, PID, PPID(부모), StartTIME, TTY 등도 나타냄 ps aux : ps -ef에 더해서 메모리 사용량도 나타냄 ps axfwww : 명령어가 안잘리고 나타남 pstree : 시스템에서 실행중인 프로세스 정보 트리구조로 출력 top : 프로세스 목록을 일정 시간마다 새로고침, 화면에 출력함 * 1을 누르면 코어별로 cpu 통계값 확인 가능 us : 유저가 cpu를 사용한 시간 sy : 시스템이 사용한 시간 ni : 우선순위로 변경한 프로세스를 사용하는데 걸린 시간 id : 유휴시간 wa : i/o주변 장치를 기다리는데 소요된 시간 hi : 하드웨어 인터럽트 루틴을 위해 소요된 시간 si ……. (Publish Date: 2021-10-13)

리눅스 2 – 파일명령어
파일관련 명령어 touch <파일명> : 비어있는 파일 생성, 파일이 있는 경우 타임스탬프 업데이트 cat <파일명> : 파일내용을 출력 head <파일명> : 파일의 1라인부터 지정한 수 만큼의 라인을 출력 (기본 값 10) tail <파일명> : 파일의 마지막 라인부터 지정한 수 만큼의 라인을 출력 tail 의 경우 로그파일의 업데이트를 실시간으로 보기위해서 자주 사용됨. tail -f <파일명> cp : 지정한 파일 복사 예시 cp -rfp 원본파일패스/이름 복사할파일패스/이름 r : recursive, 하위 디렉토리 포함 f : 강제로 덮어씌움 p : permission 도 복사 mv : 파일 이동 rename : 지정한 규칙에 따라 여러개의 파일 이름 변경 예……. (Publish Date: 2021-10-12)

리눅스 1 – bash 명령어
bash (Bourne – Again Shell) GNU 프로젝트의 리눅스 기본쉘, sh(Bourne Shell)을 대체 및 호환 실행시 참조파일 위치 /etc/profile /etc/bashrc ~/.bash_profile ~/.profile ~/.bashrc 프로그램 /bin/bash 1. Bash 커맨드라인 단축키 1) Tab : 명령 자동완성 2) ctrl + c : 실행 중인 프로세스 중단 3) ctrl + a : 라인 맨 앞으로 커서 이동 4) ctrl + e : 라인 맨 뒤로 커서 이동 5) ctrl + r : history 검색 2. bash command 의 기초적인 예 1초에 숫자가 1씩 증가한다. ctrl + c누르면 프로세스는 중단된다. 재실행하고 싶을시 화살표 윗방향 또는 ctrl + r 한 후 num을 치면 history에서 기존에 입력했던 명령어가 찾아진다. 3. 리눅스 명령……. (Publish Date: 2021-10-11)

ARM 구조 3 – 프로세서 동작모드, 레지스터
1. ARM 프로세서의 동작모드는 7개가 있다. 1) USER : 대부분의 작업이 수행되는 사용자 모드 2) System : 관리자 모드, USER 모드와 같은 레지스터를 사용함 3) FIQ : 빠르게 처리해야 하는 높은 우선 순위의 인터럽트 발생시 진입하는 모드 4) IRQ : 우선 순위가 높지 않은 인터럽트 발생시 진입하는 모드 5) Supervisor : 리셋 되었거나, 소프트웨어 인터럽트 명렁어가 실행될 때 진입 6) Abort : 메모리 엑세스시 오류가 난 경우 진입 7) Undef : 정의되지 않은 명령어를 수행할 경우 진입 2. 사용자 모드(User mode) 보통의 프로그램 실행 모드 시스템 리소스 및 입출력 장치 접근 불가 예외상화엥 의하여 모드가 바뀐다 일반 프로그래머는……. (Publish Date: 2021-10-04)

ARM 구조 2 – Big Endian, Little Endian
1. 32 비트 정수는 8비트 4개로 구성된다. 한 메모리의 width는 8비트이다. 따라서 메모리 공간 4개를 써야 32비트 정수를 저장할 수 있다. 이때 4개의 주소 중 큰 주소를 가지는 공간에 데이터의 LSB 부분을 넣는 것이 Big Endian 이다. 반대로 하면 little endian 이다. big endian 은 매킨토시에 사용되고, little endian 은 intel x86에 사용된다. 2. word 를 읽을 때는 쉽게 생각할 수 있는데, half word 와 byte를 저장할 때는 조금 헷갈린다. 아래의 메모리 구조 순서를 떠올리면 쉽게 생각할 수 있다. 예를 들어 32비트 레지스터에 00112233(16) 이라는 값이 저장되어 있다면 이를 메모리에 저장할 때 Big endian 의 경우 0: 00, 1: 11, ……. (Publish Date: 2021-10-03)

ARM 구조 1 – byte, halfword, word
1. ARM 코어는 RISC 프로세서의 특징에 CISC개념을 일부 사용한다. 많은 32 비트 레지스터를 가지고, LOAD/STORE 구조에 단순하고 규칙적인 명령어 길이와 포맷을 가지는 RISC 의 특징에 ARM 특유의 shift + alu 연산(한싸이클만에 명령어 실행 가능), 자동 증가/ 자동 감소 주소지정, 다중 load/store, 조건부 명령어 수행등도 가진다. 즉 ARM 아키텍처의 특징은 RISC + ARM의 장점을 더해 고성능을 가지고 thumb 명령어 세트를 사용해 적은 코드 크기를 가지고 칩 면적이 작고 저전력 응용이 가능하다. 2. 프로그래밍을 제대로 하려면 명령어를 이해하고 명령어가 시스템 상태를 어떻게 바꾸는지 알아야 한다. 여기서 시스템 상태란 시스템 메……. (Publish Date: 2021-10-02)

CISC 구조와 RISC 구조
1. CPU 종류는 CISC 와 RISC 이렇게 두가지가 있다. 2. CISC 는 Complex Instruction Set Computer 의 약자이다. 말 그대로 복잡한 명령어를 사용하는 것이다. 예전에는 cpu의 성능을 높이기 위해 ISA에 복합 명령어를 추가하는 방향을 택했고 내부적으로 명령어를 micro code로 분해하여 실행했다. 또한 memory에 access하는 측면에서도 다양한 address mode가 지원되었다. 이것의 장점은 '하나의 명령어'로 '강력한 기능'을 구현할 수 있다는 것과, 컴파일이 단순하여 컴파일된 프로그램의 크기가 작다는 것이다 단점은 명령어의 사용 빈도수를 고려하지 않았기 때문에 잘사용하지 않는 명령어를 위한 하드웨어의 낭비가 있……. (Publish Date: 2021-10-01)

Visited 2 times, 1 visit(s) today
  • if No post, write the comment Please!

Leave a Reply

Your email address will not be published. Required fields are marked *