제퍼넷 로고

얽힌 이단체제

시간

수십 년 동안 구조적 계층 구조는 칩 설계의 복잡성을 처리하는 주요 수단이었습니다. 항상 완벽하지는 않으며, 수행 중인 분석에 초점을 맞춰야 하기 때문에 분할하고 정복하는 이상적인 방법도 없습니다. 실제로 대부분의 시스템은 다양한 계층 구조에서 동일하게 정확하고 함께 헤테로 구조를 형성하는 것으로 볼 수 있습니다.

오늘날 사용되는 계층 구조의 형태에 대해 생각하는 가장 쉬운 방법은 엔지니어에게 시스템을 개념적으로 설계하도록 요청하는 것입니다. CPU, 인코더, 디스플레이 하위 시스템 등과 같은 레이블이 있는 큰 블록을 포함하는 블록 다이어그램을 그리기 시작할 것입니다. 분할된 많은 블록이 기능을 제공하는 것으로 간주되더라도 이는 기능적 계층 구조가 아닙니다. 칩 내에서 모든 것이 비정질 트랜지스터의 바다가 되기 때문에 이는 순수한 구조적 분해도 아닙니다.

이 다이어그램은 핀 계층 구조인 인쇄 회로 기판 설계를 위해 개발된 계층 구조를 대략적으로 따릅니다. 가장 낮은 수준에서는 아마도 Texas Instruments 7400 시리즈와 같은 논리 라이브러리를 사용했을 것입니다. 해당 장치에는 핀 맵이 있었습니다. 다음 계층 수준은 보드 수준과 백플레인에 연결된 핀이었습니다. 그 사이에 계층 구조가 거의 없었고 회로도가 여러 '시트'에 분산되어 있었습니다. 나중에 시스템이 더욱 복잡해지면 구조적 계층도 지원되었습니다.
그림 1: 복잡한 칩의 일반적인 블록 다이어그램(2013년경). 출처: Texas Instruments

그림 1: 복잡한 칩의 일반적인 블록 다이어그램(2013년경). 출처: Texas Instruments

이러한 형태의 계층 구조는 각 블록의 개발이 어느 정도 격리되고 상호 의존성이 최소화되도록 하는 캡슐화를 제공합니다. 최상위 레벨은 해당 블록을 상호 연결하는 수단이 됩니다. 분할된 각 블록은 유사한 분해를 거칠 수 있습니다.

계층 구조를 사용하는 데에는 여러 가지 이유가 있습니다. "용량은 하나입니다."라고 의 제품 마케팅 이사인 Marc Swinnen은 말합니다. 안 시스. “문제가 너무 커지면 여러 조각으로 나누어야 합니다. 또 다른 것은 동시 엔지니어링입니다. 동시에 디자인 작업을 원하는 여러 팀이 있으므로 팀을 나누어 부품을 별도로 작업합니다. 세 번째는 재사용이다. 다른 사람이 디자인한 블록을 재사용하고 싶습니다. 그 미묘한 형태는 그 자체가 계층 구조의 한 형태인 표준 셀 라이브러리입니다. 네 번째 이유는 데이터 볼륨의 관리 용이성입니다. 다섯 번째 이유는 자연스럽게 재사용할 수 있는 메모리, 다중 코어와 같은 반복적 구조입니다. 여섯 번째 이유는 각 블록마다 디자인 스타일이 다른 아날로그/디지털과 같은 혼합 도메인입니다. 다양한 도구를 사용하게 되므로 이를 계층적으로 나누게 됩니다.”

생산 능력
설계가 커질수록 많은 알고리즘을 실행하는 데 점점 더 많은 시간이 소요됩니다. 이를 세분화하면 실행 시간이 빨라지고 리소스가 덜 필요할 수 있습니다. "대형 설계의 경우 실제 구현에 들어가면 이러한 초대형 설계를 완료하는 데 며칠 또는 심지어 몇 주가 걸릴 수 있습니다."라고 수석 제품 관리자인 Jim Schultz는 말합니다. Synopsys 디지털 구현 그룹. “뭔가를 엉망으로 만들면 비용이 상당할 수 있습니다. 계층 구조는 분열하고 정복하는 방법입니다. 이를 통해 한 번에 디자인의 한 섹션을 닫을 수 있다는 것을 알 수 있습니다. 계속해서 기능을 추가하고 칩이 점점 더 커지면 런타임뿐만 아니라 리소스 부족도 문제입니다. 재사용 가능한 모든 인스턴스를 배치하는 데 필요한 메모리 양이 용량을 초과합니다.”

계층적 분석을 수행하려면 각 블록에 경계조건이 올바르게 설정되어 있는지 확인해야 합니다. 그런 다음 최상위 수준에서 경계를 넘어 분석을 수행해야 합니다.

Synopsys의 직원 제품 관리자인 Rimpy Chugh는 "플랫 분석에는 시간이 많이 걸리지만 완전한 정확성을 제공합니다."라고 말합니다. “계층 전반에 걸쳐 블랙박스 접근 방식을 취하면 속도는 향상되지만 정확성은 떨어지게 됩니다. 이를 위해서는 블록에 대한 인터페이스 로직이 보존되어 속도와 정확성의 이점을 동시에 얻을 수 있는 특수 솔루션(그림 2 참조)이 필요합니다. IP 수준에서 추상적인 모델을 생성한 다음 이를 SoC 수준에서 사용하는 것이 가능합니다.”

그림 2: 추상 모델을 사용한 계층적 흐름. 출처 : Synopsys

동시 엔지니어링
디자인 팀은 더 이상 하나의 건물에 국한되지 않습니다. “한 팀이 한 계층 구조에서 작업하고 다른 팀이 다른 계층 구조에서 작업하도록 많은 설계가 분할되고 있으며, 같은 건물에 있을 수도 있고 전 세계에 퍼져 있을 수도 있습니다.”라고 Simon Rance 이사는 말합니다. 데이터 및 IP 관리를 위한 제품 관리 키사이트 EDA. “이제 팀이 서로 다른 속도로 작업하기 때문에 이로 인해 문제가 발생할 수 있습니다. 나중에 변경하기 어렵기 때문에 안정적인 계층 구조를 갖는 것이 중요해집니다. 이는 일반적으로 최후의 수단으로만 발생하지만 대신 팀이 이를 작동시키기 위해 애쓰거나 조작하는 모습을 볼 수 있습니다. 보기 흉할 수도 있지만 칩렛을 통해 이러한 문제가 더 많이 발생하고 있습니다.”

재사용
계층 구조는 하향식과 상향식 모두에서 유용해야 합니다. "인체에서 특수 세포는 사람을 형성하는 빌딩 블록을 구성하는 시스템과 기관으로 구성됩니다."라고 수석 제품 마케팅 관리자인 Brian LaBorde는 말합니다. 운율. 마찬가지로 트랜지스터 그룹은 시스템으로 조립되는 매크로를 구성하는 회로 또는 논리 게이트를 형성합니다. 지난 수십 년 동안 우리는 하나의 칩에 다양한 특수 회로가 모두 통합된 IC가 점점 더 커지는 것을 보았습니다. 이러한 레이아웃의 분할은 가상이며 레이아웃 데이터베이스의 계층 구조로 표시됩니다.”

데이터 관리
모든 디자인은 많은 양의 데이터를 생성하므로 이를 관리해야 합니다. "엔지니어링 라이프사이클 관리와 자동차용 ISO 26262 또는 군사 항공우주용 MIL882 표준과 같은 기능 안전 표준을 충족해야 하는 필요성을 통해 문서부터 검증, 테스트 기준, 검증 테스트 계획 및 결과에 이르기까지 많은 자산을 갖게 됩니다."라고 키사이트는 말합니다. 랜스. “완전한 추적성을 확보하려면 이 모든 것이 계층 구조와 함께 유지되어야 합니다. 어쨌든 계층 구조의 모든 것을 추적하는 것은 어렵지만 검증 및 테스트 계획과 같은 디자인 외부의 모든 것도 얻을 수 있습니다. 테스트에서 문제가 발생하거나 현장에서 더 심각한 문제가 발생하면 다시 돌아가 검색을 통해 무엇이 실패했는지 찾아냅니다. 계층 구조에 모든 데이터와 메타데이터가 연결되어 있지 않으면 절대 찾을 수 없습니다.”

반복적인 구조
많은 설계에는 메모리 셀, 소형 프로세서 어레이 또는 인터페이스 등 반복적인 구조가 포함되어 있습니다. 하지만 이러한 배열에는 위험이 숨겨져 있습니다. Ansys의 Swinnen은 “16X4 그리드로 배열된 4개의 CPU 코어가 있다고 가정해 보겠습니다.”라고 말합니다. “원칙적으로 이것들은 모두 동일하지만 실제로는 경계 조건이 다릅니다. 가장자리에 있는 주변 환경은 각각 다릅니다. 최적화를 수행하려면 각각을 고유화해야 합니다. 왜냐하면 모두 경계에 고유한 기생 요소가 있기 때문입니다. 항상 이런 트레이드 오프가 있습니다. 재사용성을 유지하면서도 독특한 것을 어떻게 찾을 수 있나요? 열과 같은 것을 보면 상황이 더욱 악화됩니다.”

여러 도메인
아날로그와 디지털은 매우 다르지만 도구 분리를 활용하는 개발 흐름의 다른 측면도 있습니다. "EDA의 전체 아이디어는 이 복잡한 문제를 구조적 문제로 단순화하고, 잘라내어 문제를 정말 단순하게 만드는 것입니다."라고 기술 활성화 담당 이사인 Ron Press는 말합니다. Siemens Digital Industries 소프트웨어. “이것이 바로 DFT 스캔이 하는 일입니다. 예전에는 별도의 코어가 있더라도 하나의 크고 평평한 이미지에서 모든 작업을 수행하려고 했습니다. 그러면 디자인이 나중까지 기다려야 하고 훨씬 더 큰 문제가 발생하게 됩니다. 이제 분산된 설계 팀과 재사용되는 코어를 통해 사람들은 가능한 한 많은 플러그 앤 플레이가 필요합니다. 그들은 DFT에 대한 설계를 마치고 해당 코어에 대한 패턴을 만든 다음 최상위 수준에 연결됩니다. 래퍼 체인과 같은 일부 유형의 격리가 있는 한 해당 부분을 별도로 작업하고 DFT 디자인을 완성하고 패턴을 완성할 수 있습니다. 이는 이들 팀을 독립적으로 만들고 전체 프로세스를 훨씬 쉽게 만듭니다.”

구조적 계층 문제
완벽한 시스템은 없으며 이러한 형태의 계층 구조는 몇 가지 문제를 야기합니다. Synopsys의 Schultz는 “이러한 경계의 제약 조건 설계와 관련된 오버헤드가 분명히 존재합니다.”라고 말합니다. “제약조건을 분해하고 올바르게 정의한 다음 이를 블록 경계까지 밀어 넣어야 합니다. 이러한 경계를 올바르게 정의했는지 확인하는 것은 큰 문제입니다. 이에 대한 또 다른 문제점은 설계상 물리적으로 무언가를 여러 조각으로 나누고 이것이 내 파티션이라고 말할 때 물리적으로 구현하려고 할 때 해당 경계를 넘어 최적화하지 않을 것이라는 것입니다. 최적화할 수 없습니다. 이제 해당 경계는 고정되었습니다. 해당 계층 구조 전체에 걸쳐 수행해야 하는 최적화가 있는 경우에는 이를 수행할 수 없습니다. 당신은 자신에게 한계가 있습니다.”

이는 여러 도구와 흐름에 영향을 미칠 수 있습니다. Siemens' Press는 “계층적 DFT를 사용하여 최상위 계획을 세우면 너무 많은 핀을 코어에 배치할 계획을 세울 수도 있습니다.”라고 말합니다. “그런 다음 코어에는 너무 많은 패턴이 필요하지 않으며 비슷한 수의 핀을 할당한 다른 코어에는 훨씬 더 많은 패턴이 필요하다는 것이 밝혀졌습니다. 최상위 수준에서 초기에 디자인을 동결했다면 패턴 전달이 그다지 효율적이지 않을 것입니다.”

잘못된 계층 구조를 설정하면 여러 면에서 제한을 받을 수 있습니다. Schultz는 “특히 대규모 SoC의 가장 큰 문제 중 하나는 네트워킹과 통신으로 인해 혼잡이 발생할 수 있다는 것입니다.”라고 덧붙입니다. “특히 디자인이 제대로 분할되지 않은 경우 칩 전반에 걸쳐 혼잡이 발생합니다. 블록이 다른 블록을 통해 통신하는 것을 볼 수 있으며 피드스루를 만들어야 합니다. 이로 인해 디자인에 많은 혼잡이 발생할 수 있습니다. 또한, 전체 경로를 쉽게 최적화할 수 없기 때문에 이와 같은 작업을 수행할 때 타이밍 요구 사항을 충족하는 것이 훨씬 더 어렵습니다. 각 블록을 개별적으로 최적화하고 경로가 모두 잘 작동하기를 바라야 합니다.”

경계에서는 미묘한 변화가 일어날 수 있습니다. Swinnen은 “두 블록이 인접해 있으면 블록 사이에 논리적 연결이 있지만 물리적으로 아무 것도 없습니다.”라고 말합니다. “핀이 서로 닿기만 할 뿐 와이어는 없습니다. 하지만 넷리스트에는 거기에 있어야 할 와이어가 있습니다. 저항, 커패시턴스가 있어야합니다. 논리적 와이어는 있지만 물리적 와이어는 없습니다. 그런 다음 전선이 블록의 한쪽으로 들어오고 블록을 통과하여 다른 쪽 끝으로 나오는 피드스루가 있습니다. 핀과 물리적 와이어는 있지만 논리적 와이어는 없습니다. 논리적으로는 존재하지 않습니다. 당신은 회로도에 그것을 그리지 않습니다.”

일부 도구는 잘못된 계층 구조를 처리할 수 있지만 이를 수정하면 다른 문제가 발생합니다. Schultz는 “RTL을 개발하고 이를 합성할 때 논리적 계층 구조가 있습니다.”라고 말합니다. “물리적 설계를 수행할 때 이러한 논리적 계층은 물리적 파티션에 일대일로 매핑되어야 합니다. 결국 일어나는 일은 내 논리 계층에서 다른 부모 아래에 있는 것과 실제로 많은 대화를 나누는 논리 계층 아래의 자식과 대화하는 자식이 있을 수 있고, 그 두 부모는 자신의 물리적 파티션이 된다는 것입니다. 이 두 부모는 칩의 반대편에 물리적으로 배치될 수 있습니다. 논리적 계층 구조는 물리적 구현에 도움이 되지 않습니다. 이것이 처리되는 방식은 RTL 구조 조정을 통해서입니다. 이제 우리는 물건을 옮기고 논리를 고치기 시작했지만, 이는 순수 RTL이나 논리 디자이너가 알 수 있는 내용이 아닙니다. 해당 정보는 물리적 계층 구조를 고려할 때만 나타납니다. 물리적 계층 구조를 실제로 최적화하려면 둘 사이에 의사소통이 필요합니다.”

이는 흐름의 다른 위치에서 발생합니다. "NoC는 최상위 조종석 수준에 위치하며 여기에서 전체 계층 구조의 통합 측면을 볼 수 있습니다."라고 솔루션 및 비즈니스 개발 담당 부사장인 Frank Schirrmeister는 말합니다. 동맥. “전력 도메인 간의 서로 다른 두 가지 비기능적 속성으로 인해 계층 구조를 변경해야 하는 경우 RTL을 리팩토링하는 것이 간단할 수 있습니다. 계층 구조에 대해 더 높은 수준의 통합을 가짐으로써 이에 따라 RTL을 리팩터링하고 재구성하는 데 도움이 되며, 모든 모듈을 수동으로 변경해야 하는 방식으로 이를 수행하고 싶지는 않을 것입니다.”

이것을 추적하는 것은 악몽이 될 수 있습니다. Rance는 “계층 구조의 일부인 문서나 파일에 대한 개정 관리를 생각해 보세요.”라고 말합니다. “그러면 수행 중인 작업에 따라 해당 계층 구조의 여러 버전이나 개정판이 있을 수 있습니다. PPA 분석을 수행하는 검증 팀이 있을 수 있으며 이를 약간 조정하고 이 계층 구조의 다른 버전을 생성하면 성능이 더 좋아진다는 것을 알 수 있습니다. 그 점을 계속 추적해야 합니다.”

계층 구조가 우리를 분열시키고 정복하는 데 도움이 되는 만큼, 어떤 것들은 이러한 단순화를 시도하려는 시도를 거부합니다. Arteris의 Schirrmeister는 “열 분석과 같은 작업은 칩 전체에서 수행되어야 합니다.”라고 말합니다. “그러나 이것을 칩에서 기능적으로 일어나는 일, 칩을 통해 실행되는 데이터와 연관시킬 수 있어야 합니다. 잠재적으로 수명 주기 관점에서 핫스팟을 살펴보고 각 기능이 있는 위치를 확인하고 가장 큰 영향을 받는 칩 사진을 찍을 수 있기를 원합니다. 이를 다시 데이터와 연관시키는 것은 결코 쉬운 일이 아닙니다.”

기타 계층
기능 계층과 같은 다른 계층도 존재합니다. 오늘날 우리가 이에 가장 가까운 것은 시스템이 수행해야 하는 작업에 대한 높은 수준의 정의로 시작하는 요구 사항 추적 시스템입니다. 이는 적절한 요구 사항이 충족되는지 확인하는 테스트 벤치와 함께 실제로 이를 제공하는 논리 또는 기타 회로가 식별될 때까지 더 간단하고 간단한 작업으로 분류됩니다.

일부 계층 구조는 디자인 프로세스를 거치며 진행됩니다. Schirrmeister는 “시계 트리에 대한 계층 구조가 있을 수 있습니다.”라고 말합니다. “배전 시스템에는 계층 구조가 있습니다. 그리고 전체 칩 관점을 위해 모든 것을 함께 연결하는 방법에 대한 시스템 분석 도구에서 볼 수 있는 계층 구조가 있습니다. 우리가 ESL(전자 시스템 수준)에 대해 생각한 것은 모든 것을 설명하는 실행 가능한 기능 사양이라는 개념이었습니다. 이는 아직까지 나오지 않은 내용입니다. 어찌됐든 우리는 그런 일에서 벗어나고 있는 것 같은데, 정말 놀랍습니다.”

물리적 레이아웃은 또 다른 계층 구조를 제공합니다. 가장 높은 수준에는 구조적 계층을 출발점으로 활용하는 평면 계획이 있습니다. 이러한 블록이 배치되고 상호 연결이 이들 블록 사이에 라우팅됩니다. 각 블록은 물리적 합성을 사용하여 배치되며, 이는 다시 로컬 상호 연결을 처리합니다. 3D-IC는 여기에 새로운 차원을 추가하여 이제 Z 방향으로 라우팅이 존재할 수 있습니다.

Cadence의 LaBorde는 "칩렛 기반 2.5D 및 3D 시스템이 SoC(시스템 온 칩) 설계를 대체하기 시작하면서 계층 구조는 물리적 현실을 표현하는 것만큼 전략적 구성이 아닐 것입니다."라고 말합니다. “회로도의 매크로는 각각 고유한 프로세스를 가진 시스템의 칩을 나타낼 수 있습니다. 이들 사이의 연결은 레이아웃의 상징적인 핀이 아니라 납땜 범프가 될 것입니다.”

결론
완벽하지는 않지만 오늘날 사용되는 비공식적 구조 분해는 능숙한 계층 구조임이 입증되었습니다. 흐름의 일부 측면은 흐름으로 인해 어려움을 겪지만 대부분은 흐름을 효과적으로 사용할 수 있으며 도구는 흐름의 부적절함을 보완할 수 있습니다. 이로 인해 어느 정도 손실되는 최적화 잠재력이 있지만 이는 아마도 생산성이라는 이름으로 이루어진 작은 희생 중 하나일 것입니다.

spot_img

최신 인텔리전스

spot_img