Assembly 명예의 전당
요약
가상 머신 환경에서의 TLB 미스 영향과 초기 마이크로프로세서의 버스 주기 설계 결함 등 하드웨어 설계의 실패 사례를 다룹니다. 현대 칩 설계에서 발생하는 지연 시간 문제와 클록 도메인 교차(CDC) 취약성 해결 시 발생하는 성능 저하 문제를 분석합니다.
핵심 포인트
- 가상화 환경에서 TLB 미스로 인한 메모리 접근 오버헤드 분석
- 초기 프로세서의 핸드셰이크 부재 및 버스 주기 설계 결함 사례
- CDC 취약성 해결 시 발생하는 심각한 성능 저하 문제
- 현대 프로세서 설계의 복잡성과 지연 시간 문제
가상 머신 안에서 분산/수집 연산을 수행해 각 가져오기가 내부 TLB 미스를 일으키고, 페이지 테이블 순회의 각 가져오기도 외부 TLB 미스를 일으키게 하면 피해를 줄 수 있을지 궁금함
이렇게 하면 한 번의 가져오기당 최대 24번의 가져오기가 발생할 수 있음
확인 응답을 요구하면서 시간 제한이 없는 메모리 주기를 사용하는 프로세서라면 버스 주기를 무한정 늘릴 수 있음
예를 들어 MC68000 기반 보드에서 도착하지 않는 DTACK를 기다리게 해 버스 주기 도중 영원히 멈추게 할 수 있음
일부 초기 마이크로프로세서는 핸드셰이크 없이 클록에 맞춘 버스 주기를 사용했으며, 주소와 읽기/쓰기 신호를 내보낸 뒤 몇 클록 안에 전송이 끝나리라 기대했음
해당 주소에 장치가 없으면 버스에 남은 값을 읽는데, 오픈 드레인 방식이라면 0을 나타낼 장치가 접지로 끌어내리지 않아 모든 비트가 1일 수도 있음
정해진 버스 주기를 따라가지 못하는 장치와 연결하려고 소프트웨어 편법까지 요구하는 설계는 실패 사례 전당에 들어갈 만함
일반적으로 복잡한 프로세서일수록 지연 시간 문제가 있으며, 현대 칩은 설계를 거듭할수록 어떤 면에서는 오히려 악화됐음 준안정성 문제까지 고려하면 단순한 게이트 설계 시뮬레이션 모델로는 현실적인 계산 시간 안에 모든 실패 가능성을 판별할 수 없음
클록 도메인 교차(CDC)에 취약한 설계를 고치면 프로세서가 몇 배나 느려지며, 직접 시도했을 때는 8~16배 느려졌음
그 결과 폰 노이만 구조와 크게 다른 기묘한 설계 특성까지 생겨남
규칙에는 “트랩·에뮬레이션·가상화된 명령어는 핸들러가 아니라 트랩 시간만 측정할 수 있다”고 적혀 있음
하지만 현재 순위 8위인 ACPI I/O 포트의 12ms 쓰기는 SMM으로 트랩된 뒤 그곳에서 처리되는 것처럼 보임
AI 자동 생성 콘텐츠
본 콘텐츠는 RSS: GeekNews (한국어)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기