Embedded : : Arm Architecture 10

UFS : Universal Flash Storage 개요

놀랍게도 10년 가까이 UFS 관련 개발을 해왔는데, 관련 포스팅이 여태까지 1개도 없었다는 게 내가 생각해도 신기하네...(그림 출처: https://www.storagenewsletter.com/2016/04/07/jedec-publishes-jesd220-2-universal-flash-storage-card-extension-standard/) UFS Architecture : Host Side 위는 UFSHCI(host controller interface) 등 ufs 스펙에 주로 표현되는 내용이다.공학을 전공하거나 통신 관련 내용을 접해봤다면 상당히 익숙할 구조이다. 많은 analog/physical 및 프로토콜 기반 통신을 지원하는 고속 장치 들은 OSI  7 Layer 의 형태로 구현된다...

PCIe 용어와 특징

1.  PCIe 특징    1.1  PCIE 특징  Serial bus   Point to point   Power management active state   자체 내부 공간이 있음  PCIE root complex ​​Pcie root complex(RC)라고 한다. CPU/메모리 서브 시스템을 I/O 연결할 수 있는 I/O계층 루트이다. ​​   1.2  RC와 EPRC 특징  Root complex는 1개 이상의 PCI Express port를 가질 수 있다.   PCI Express Port는 하나의 End point디바이스와 연결되거나, 브리지나 스위치를 통해 확장이 가능  EP 특징  PCIE 토폴로지 트리 구조의 맨 아래에 있음  Endpoint의 줄임말​​​​  2.  PCIe 용어  ..

PCIe states

1.  PCIe states    1.1  PCIe를 사용하는 디바이스 상태 PCIe를 사용하는 디바이스는 크게 3가지 상태가 있다.  D0 : 풀 가동 상태D1/D2 : 가동하고 있지만 일부의 패킷을 처리하지 않아도 된다D3 : 대기 상태     1.2  링크의 상태​링크의 상태도 따로 설정 가능하다. Initalization mode : PCIE link는 active와 pending으로 열거, PCIE 전원 관리 허용 안함Active mode : PCIE link is active 호스트와 디바이스에서 패킷이 교환됨Actice mode and Tx Idle mode : PCIE link는 active 하지만 link의 Tx 섹션은 Idle 상태 L0S_ENTR_LATENCY Inactive mode..

PCIe Interrupt

1. PCIe Interrupt PCIe는 RC를 통해 EP에서 발생하는 인터럽트를 전달하는데 다음 두가지 방법을 사용한다.    1.  Legacy PCI InterruptSystem host에서 제어함, Pci bus는 physical layer로 정의 되어있다. (INTA#, INTB#, INTC#, INTD#)    2.  Message Signal Interrupt (MSI)메모리에 바로 TLP를 쓰기 때문에 미리 메모리 위치를 결정하고 쓴다.      2.  Legacy Interrupt와  MSI 발생 프로세스 만약 PCI device#3이 인터럽트를 생성하는 디바이스라고 가정하고 device#1과 같은 IRQ를 공유한다면     2.1  Legacy Interrupt (pin based i..

DSI / CSI

1.  DSI / CSI 란?  DSI (Display Serial Interface) : AP(호스트)와 Display Module 사이의 고속 시리얼 인터페이스를 정의한 표준  CSI (Camera Serial interface)는 AP와 카메라를 연결하는 인터페이스에 관한 표준​ DSI (Display Serial Interface)는 디스플레이를 위한 규격이다. MIPI 물리 계층인 D-PHY를 사용하며, MIPI Display Command Set(MIPI DCS)를 사용한다.     2.  MIPI DSI / CSI   2.1  MIPI DSI & CSI 시스템 구성도     2.2  MIPI Physical Layers MIPI에서는 30개가 넘는 사양서를 정의하고 있는데, 그 중에 물리 계..

Exception(익셉션) 개요

1.  Exception Model    1.1  익셉션 모델​ARMv8부터 프로세서를 바라보는 관점이 익셉션 레벨을 기준으로 변경되었기 때문에 잘 알아두어야 함익셉션은 시스템 흐름에서 벗어나 익셉션 핸들러의 처리를 필요로하는 상태 or 시스템 이벤트    1.2  익셉션 모델이 정하는 것들​익셉션 타입과 상태프로세서의 익셉션 핸들링 루틴익셉션 복귀​     2.  익셉션 레벨 (Exception Level)   2.1  익셉션 레벨이란​익셉션 레벨(EL0, EL1, EL2, EL3) 중 하나로, 레벨이 높을 수록 자원에 접근할 수 있는 권한 레벨이 높음​    2.2  Exception Level별 동작 EL0 : 유저 어플리케이션EL1 : 커널EL2 : 하이퍼바이저EL3 : 보안 모니터    2.3 ..

ARMv8 Intro.

ARMv8 Intro.    1.  Device as File​  리눅스 커널은 대부분 아키텍처 독립적이지만, 부트업 코드나 구동 중 빈번히 수행되는 많은 코드(스핀락)가 아키텍처 의존적으로 구현되어 있다.​   2.  ARM 특징구조가 단순하다낮은 소비전력저전력 고성능​   3.  ARM 아키텍처의 발전 과정  ​ARMv4 → ARMv5 → ARMv6 → ARMv7 → ARMv8​   4.  ARMv8 특징64bit 아키텍처실행상태라는 개념을 도입하여 32bit ARMv7용 코드도 실행이 가능하다.​​  5.  ARMv8 성능 이점산술 연산 시 64bit 정수 데이터를 1개의 *인스트럭션으로 처리 가능64bit 가상주소공간을 제공해 애플리케이션도 넓어진 가상 주소 공간 사용이 가능 * 인스트럭션 : 컴..

MCU : DIE, PAD, Drive Strength, Pad Level, Hysteresis

MCU : DIE, PAD, Drive Strength, Pad Level, Hysteresis   DIE “DIE”는 일반적으로 반도체 패키지 또는 칩 내부에 있는 실리콘 칩, 집적회로(IC)이다. 웨이퍼 디스크의 한 조각이었던 Die는 ‘칩’에 장착되고 연결되면서 아래 사진처럼 에폭시로 덮이게 된다.    PAD “PAD”는 Die에서 외부로 나가는 Wire bonding을 붙이는 연결판과 pin(또는 ball)으로 연결되는 접점을 포함하는 부분으로, 상당히 큰 크기를 가지고 있고 보통 Die의 맨 바깥쪽 4면에 놓여진다. 반도체 칩이 다른 시스템 내의 다른 칩과 실질적으로 연결되는 부분이다. 이러한 PAD는 내부 Die 공간에서 Power Source에 따라 부분적으로 나누어져 있으며, 각각에 PA..

디스크를 교체했더니 디스크 I/O 지연이 발생했다면? "파티션 정렬" 하고 가세요!

​  0 파티션 정렬의 필요성 데이터베이스나 Hadoop 어플리케이션을 띄우고, 데이터는 4 TByte(Tera Byte)의 하드 디스크에 저장하며 잘 사용하고 있었습니다. 어느 날, 그 디스크가 깨져서 새로 교체를 하고 파일시스템을 포맷 하였는데요, 그 뒤로 I/O가 눈에 띄게 지연되는 것을 느끼게 됐습니다.그 이유가 뭘까요?​그 이유는 바로 파티션의 시작점이 정렬되지 않았기 때문입니다. OS는 설치 시에 인스톨러가 똑똑하게도 알아서 파티션의 시작 위치를 정렬하여 첫번째 파티션을 만들어주기에, 파티션 정렬이라는 개념을 고려할 필요가 없었습니다. 그러나 OS가 설치된 이후에 어떤 이유에 의해서 사용자가 직접 파티션을 만들게 되는 위와..

UART / I2C / SPI

우선 동기화/비동기화란 ? 비동기화 통신 = 클럭 없음동기화 통신 = 클럭 있음 ​​UART(Universal Asynchronos Receiver/Transmitter) 통신이란 ?UART는 유선/디지털/전이중/직렬/비동기 통신방식 중 비동기 통신 방식을 사용한다. 최대 8bit가 기본 단위이다. 데이터 속성 구분 정보는 기본 규격에 정의되어 있지 않다. ​UART는 비동기 통신이므로 데이터를 원활이 송신/수신하기 위해 동기 신호(Clock)을 대체하는 방법을 사용해야한다.공유 클럭이 없으므로 데이터를 올바르게 디코딩하기 위해 동일한 Baud Rate(타이밍)를 구성하고 일치시켜야한다. ​이해가 어렵다면. 무궁화 꽃이 피었습니다를 생각해볼 수 있다. 술래(데이터를 받는 쪽)와 술래에게 다가가야하는 참가..