RAM (모든 유형) 액세스 시간이 왜 이렇게 느려 집니까?


22

기사에서는 DDR4 SDRAM의 대역폭 DDR1 SDRAM이 약 8 배 더 많다는 것을 보여줍니다. 그러나 열 주소 설정에서 데이터를 사용할 수있는 시간까지의 시간은 10 % (13.5ns) 만 감소했습니다. 빠른 검색은 가장 빠른 비동기의 액세스 시간을 보여줍니다. SRAM (18 세)은 7ns입니다. SDRAM 액세스 시간이 왜 이렇게 느려졌습니까? 경제적, 기술적 또는 근본적인 이유가 있습니까?


1
또 다른 가능한 이유는 그것이 단순히 필요하지 않기 때문일 수 있습니까?
Sebastiaan 반 덴 브 Bro

예를 들어 메모리의 데이터를 더 빨리 검색하려면 액세스 시간이 짧아야합니다.
Arseniy

추가 속도는 항상 좋지만 소프트웨어 개발자의 관점에서 볼 수 있습니다. 다른 IO 및 아키텍처 (다른 데이터 센터에서 문자 그대로 실행할 수있는 마이크로 서비스 포함)와 비교할 때 RAM 속도는 병목 현상이 아닙니다. 더 이상 때로는 '충분히 좋은'것이 좋거나 적어도 추가 R & D가 속도를 높이는 것을 보증하지 않습니다. 나는 그것을 당신의 질문에 잠재적 인 이유로 추가하는 것을 고려할 것입니다.
Sebastiaan 반 덴 브 Bro

1
에 따르면 위키 백과 는 FR4에 3피트을 주위에 전파 신호를 걸리는 시간입니다 6.36 NS의 첫 번째 워드 대기 시간, DDR3-2200 한 것은, 우리가 아주 가까이 물리적 한계에 말할 것이다
마크 오모

답변:


33

지연 시간을 줄이는 것보다 DRAM의 대역폭을 늘리는 것이 더 쉽고 저렴하기 때문입니다. 열린 램 행에서 데이터를 얻으려면 사소한 양의 작업이 필요합니다.

열 주소를 디코딩하고 액세스 할 라인을 선택하는 mux를 구동해야하며 데이터를 칩을 통해 출력 버퍼로 이동해야합니다. 특히 SDRAM 칩이 높은 로직 속도가 아닌 높은 램 밀도에 맞게 조정 된 프로세스에서 제조되는 경우 약간의 시간이 걸립니다. DDR (1,2,3 또는 4)을 사용하여 말하는 대역폭을 늘리기 위해 대부분의 논리를 확장하거나 파이프 라인으로 만들 수 있으며 이전 세대와 동일한 속도로 작동 할 수 있습니다. 더 빨라야하는 유일한 것은 DDR 핀용 I / O 드라이버입니다.

반대로, 지연 시간을 줄이려면 전체 작업 속도를 높여야하므로 훨씬 어렵습니다. 램의 일부는 고속 CPU와 비슷한 프로세스로 만들어져 비용이 상당히 증가합니다 (고속 프로세스는 더 비싸고 각 칩은 2 개의 다른 프로세스를 거쳐야합니다).

CPU 캐시를 RAM 및 하드 디스크 / SSD와 비교하면 스토리지의 크기와 스토리지의 속도가 반비례합니다. L1 $는 매우 빠르지 만 32 ~ 256kB의 데이터 만 보유 할 수 있습니다. 너무 빠른 이유는 작기 때문입니다.

  • 이를 사용하여 CPU에 매우 가까이 배치 할 수 있습니다. 즉, 데이터가 도달하기 위해 더 짧은 거리를 이동해야합니다.
  • 전선을 더 짧게 만들 수 있습니다. 다시 말해 데이터를 이동하는 데 걸리는 시간이 줄어 듭니다.
  • 많은 영역이나 많은 트랜지스터를 차지하지 않으므로 속도 최적화 프로세스를 수행하고 저장된 비트 당 많은 전력을 사용하는 것이 그렇게 비싸지 않습니다.

계층을 위로 이동하면 각 스토리지 옵션의 용량이 커지지 만 영역이 커지고이를 사용하여 장치에서 멀어 지므로 장치 속도가 느려집니다.


21
좋은 대답입니다. 물리적 거리 요소를 강조하고 싶습니다. 가장 먼 RAM 스틱의 경우 10cm, 신호 속도의 빛 속도의 1/3-1/2, PCB 트랙을 라우팅 및 일치시키기위한 추가 길이 2ns 왕복 여행 시간에 쉽게. 지연의 ~ 15 %가 절대 속도 제한으로 인해 발생하는 경우 ... 내 의견으로는 정말 잘하고 있습니다.
mbrig

1
L1은 또한 고유하게 구성되며이를 사용하는 핵심에 직접 있으며 SRAM을 사용합니다.

@forest 또한 매우 엄격한 크기 제한이 있습니다. 너무 크게 만들면 그렇게 빨리 유지할 수 없습니다.
루안

L1d 캐시는 지연 시간에 맞게 크게 최적화 할 수 있습니다 (예 : 세트의 모든 방식에 대해 태그 및 데이터를 병렬로 가져 오기). 따라서 태그 일치는 SRAM에서 가져와야하는 대신 데이터를 출력에 다중화합니다. 인덱스 비트가 모두 주소의 페이지 내 오프셋 부분에서 오는 경우 주소의 높은 비트에 대한 TLB 조회와 동시에 발생할 수도 있습니다. (@Luaan 언급처럼 그 크기에 하나 개의 하드 제한, 그래서 : 크기 / 연관성 <= 작업을 보려면이 VIPT = PIPT 속도 해킹 페이지 크기. VIPT 캐시 : TLB 및 캐시 사이의 연결 )
피터 코르 드

6

C_Elegans 는 답변의 한 부분을 제공합니다 . 메모리주기의 전체 지연 시간을 줄이는 것은 어렵 습니다.

대답의 다른 부분은 현대 계층 적 메모리 시스템 (여러 수준의 캐싱)에서 메모리 대역폭 이 메모리 대기 시간 보다 전반적인 시스템 성능에 훨씬 더 큰 영향을 미치 므로 모든 최신 개발 노력이 집중된 곳입니다.

이것은 많은 프로세스 / 스레드가 병렬로 실행되는 일반 컴퓨팅과 임베디드 시스템에서 모두 마찬가지입니다. 예를 들어, 내가하는 HD 비디오 작업에서 밀리 초 단위의 대기 시간은 신경 쓰지 않지만 몇 기가 바이트 / 초의 대역폭이 필요합니다.


지연 시간을 줄이는 어려움과 비용에 비해 대부분의 경우 소프트웨어는 "높은"지연 시간을 갖도록 쉽게 설계 될 수 있습니다. CPU와 해당 소프트웨어는 대부분의 경우 효과적인 대기 시간을 제거하는 데 매우 능숙합니다. 결국 메모리 아키텍처와 CPU 캐싱 / 프리 페칭 등이 어떻게 작동하는지 모를 경우를 제외하고는 생각한대로 지연 시간 제한에 도달하지 않습니다. 간단한 접근 방식은 일반적으로 대부분의 소프트웨어, 특히 단일 스레드에 적합합니다.
루안

최신 인텔 CPU에서 메모리 대기 시간은 단일 코어 대역폭 의 제한 요소입니다 . 대역폭은 max_concurrency / 대기 시간을 초과 할 수 없으며 단일 코어는 한 번에 오프 코어 요청에 대한 용량이 제한되어 있습니다. 많은 코어 Xeon (링 버스에서 더 많은 홉으로 인한 언 코어 대기 시간이 더 높음)은 DRAM 컨트롤러가 더 많더라도 쿼드 코어 데스크탑 칩보다 단일 코어 대역폭 이 더 나쁩니다 . 단일 스레드 메모리 처리량에서 Skylake가 Broadwell-E보다 훨씬 우수한 이유는 무엇입니까? . 많은 코어 Xeon에서 메모리 B / W를 포화시키기 위해서는 더 많은 스레드가 필요합니다.
Peter Cordes

전체 요점은 정확합니다. 대부분의 액세스는 지연 시간이 짧은 캐시에 적중되어 비 순차적 백엔드가 중단되는 것을 방지합니다. HW 프리 페치는 대부분 순차적 액세스를 유지하고 코어가 필요로하기 전에 캐시에 데이터를 준비하기 위해 대역폭 만 있으면됩니다. DRAM 대기 시간은 수백 개의 코어 클록주기이므로 공간 / 시간적 지역 성과 HW 프리 페칭을 모두 물리 치면 미스를 캐시 하지 않는 액세스 패턴을 사용하도록 효율적인 소프트웨어를 조정해야합니다 . 특히 저장소 버퍼는 저장소 지연을 나머지 비 순차적 백엔드에서 분리 할 수 ​​있기 때문에로드의 경우 특히 그렇습니다.
Peter Cordes

디스크 I / O의 경우 순차 액세스를 위해 미리 읽기 사전 패치를 숨기지 않은 경우 대기 시간 (밀리 초)이 중요합니다. 그러나 대기 시간이 길수록 숨기는 것이 더 어렵습니다. (프리 페치 알고리즘이 우수할수록 액세스 패턴이 더 예측 가능해야합니다.) 더 많은 요청 / 데이터 바이트가 필요할 때 기내에서 유지하여 원하는 대역폭을 확보해야합니다.
Peter Cordes

2

그다지 통찰력은 없지만 약간의 통찰력이 필요합니다.

간결한

대부분의 컴퓨터 / 전화의 경우 속도가 충분합니다. 빠른 데이터 스토리지를 위해 SSD가 개발되었습니다. 사람들은 (거의) 실시간으로 비디오 / 음악 및 기타 속도 집약적 작업을 사용할 수 있습니다. 따라서 더 많은 속도가 필요하지 않습니다 (날씨 예측 등의 특정 응용 프로그램 제외).

또 다른 이유는 매우 높은 RAM 속도를 처리하는 것이며, 빠른 CPU가 필요합니다. 그리고 이것은 많은 전력 사용량과 함께 제공됩니다. 휴대 전화와 같은 배터리 장치에서 사용하는 경향이 있기 때문에 매우 빠른 RAM (및 CPU)의 사용을 방지하므로 경제적으로 유용하지 않습니다.

인위적인

칩 / IC의 크기가 줄어듦에 따라 (현재 nm 레벨) 속도는 올라가지 만 크게 증가하지는 않습니다. RAM의 양을 늘리는 데 더 자주 사용되며, 이는 더 경제적으로도 필요합니다 (경제적 이유).

기본적인

예를 들어 (두 회로 모두) : 더 빠른 속도를 얻는 가장 쉬운 방법 (SSD에서 사용)은 여러 구성 요소에로드를 분산시키는 것입니다. 이러한 방식으로 '프로세싱'속도도 더해집니다. USB 스틱 1 개에서 서로 데이터를 읽는 대신 8 개의 USB 스틱을 동시에 읽고 결과를 결합하여 비교합니다 (8 배의 시간이 소요됨).


1
SSD는 SDRAM 대기 시간과 정확히 어떤 관련이 있습니까?
C_Elegans

@ C_Elegans 그들은 둘 다 회로입니다.이 '일반적인'질문에는 너무 많은 차이가 없다고 생각합니다.
Michel Keijzers

2
프리 차지 주기로 인해 페이지를 여는 시간이 그다지 줄어들지 않았습니다. 필요한 에너지의 양은 오늘날 10 년 전과 크게 다르지 않습니다. 그것은 내 경험에서 액세스 시간을 지배합니다.
피터 스미스

5
@MichelKeijzers 둘 다 회로이지만 SSD와 SDRAM은 매우 다른 사용 사례를 제공하며 데이터 저장을 위해 다른 기술을 사용합니다. 또한 CPU가 실제로 더 빠른 RAM을 필요로하지 않는다고 말하는 것은별로 의미가 없습니다. 대부분의 최신 CPU가 3 레벨의 캐시를 갖는 전체 이유는 RAM이 CPU를 제공하기에 충분히 빠르지 않기 때문입니다.
C_Elegans

1
더 큰 스토리지를 위해 SSD가 있다고 말했습니다 . 더 빨리 말했습니까 ? hdd보다 ssd에서 같은 양의 스토리지를 얻는 것이 더 비쌉니다. SSD의 주요 판매 지점은 속도, 아마도 소음과 신뢰성입니다. 용량면에서 HDD는 여전히 우수합니다
user198712
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.