이 블로그 검색

2024년 2월 6일 화요일

음 삼성이 GDDR7을 만들었다는데서 PAM3 기술을 사용해서, 데이터를 전송한다고 한다.


음 말이 좋아.. 

그냥 전송 매체의 클럭한계가 와서, 디지털에서 다시 아날로그로 가는거랑 같은 거 같은데


PAM3는 그러니까, 기존 0V, !0 V  신호 체계에서   0, 중간, 1 세개의 신호체계로 간다는거고
PAM4는 한번에 2비트씩     0V, (x/3)V, (2x/3)V , x V로 보내겠다는 거네...

디지털의 한계는 결국 아날로그로 가는 것으로 해결한다니.. 참... 


그래서 관심이 가서 어떻게 전송하는지 좋은지 python3으로 찾아보았다.

#!/bin/python3
ntrit = 1
nbit = 1

x = 3 / 2.0

pmin = 0.87
pmax = 1 / pmin

print("program start")

for n in range(1, 30000):
    if x > pmin and x < pmax:
        print(f"{n} loops 3**{ntrit} / 2**{nbit}")
    if x < 1:
        x = x * 2.0
        nbit += 1
    elif x >= 1:  # 
        x = x / 3.0
        ntrit += 1

print("program end")



결과 값 0.87 ~ 1/0.87 사이값이 나오는 ntrits와 nbits를 찾았다. 
program start
4 loops  1 find: 3**2 / 2**3 : 0.8888888888888888
12 loops  2 find: 3**5 / 2**8 : 1.0534979423868311
17 loops  3 find: 3**7 / 2**11 : 0.9364426154549611
25 loops  4 find: 3**10 / 2**16 : 1.1098579146132874
30 loops  5 find: 3**12 / 2**19 : 0.9865403685451444
35 loops  6 find: 3**14 / 2**22 : 0.8769247720401284
43 loops  7 find: 3**17 / 2**27 : 1.0393182483438559
48 loops  8 find: 3**19 / 2**30 : 0.9238384429723164
56 loops  9 find: 3**22 / 2**35 : 1.094919636115338
61 loops  10 find: 3**24 / 2**38 : 0.9732618987691892
74 loops  11 find: 3**29 / 2**46 : 1.0253294077568413
79 loops  12 find: 3**31 / 2**49 : 0.9114039180060812
87 loops  13 find: 3**34 / 2**54 : 1.0801824213405407
92 loops  14 find: 3**36 / 2**57 : 0.9601621523027029
100 loops  15 find: 3**39 / 2**62 : 1.1379699582846847
105 loops  16 find: 3**41 / 2**65 : 1.0115288518086085
110 loops  17 find: 3**43 / 2**68 : 0.8991367571632076
118 loops  18 find: 3**46 / 2**73 : 1.065643564045283
123 loops  19 find: 3**48 / 2**76 : 0.9472387235958072
131 loops  20 find: 3**51 / 2**81 : 1.122653302039475
136 loops  21 find: 3**53 / 2**84 : 0.9979140462573112
141 loops  22 find: 3**55 / 2**87 : 0.8870347077842765
149 loops  23 find: 3**58 / 2**92 : 1.0513003944109944
154 loops  24 find: 3**60 / 2**95 : 0.9344892394764396
162 loops  25 find: 3**63 / 2**100 : 1.107542802342447
167 loops  26 find: 3**65 / 2**103 : 0.984482490971064
172 loops  27 find: 3**67 / 2**106 : 0.8750955475298346
180 loops  28 find: 3**70 / 2**111 : 1.037150278553878
185 loops  29 find: 3**72 / 2**114 : 0.9219113587145582
193 loops  30 find: 3**75 / 2**119 : 1.0926356844024394
program end

아쉽게도 8의 배수에 해당하는 건 잘 안나온다.  어차피 전송체계니 바이트 체계를 그대로 가져가지 않아도 괜찮지 않을까, 

댓글 1개:

  1. 130 128/2 신호 같은걸 오류 검증용으로 쓰는거 보면, 조금 벗어나는건 문제가 안될 것이다. trit에서도 한번 체크 bit에서도 한번체크 한다고 하면 될테니.

    답글삭제

가장 많이 본 글