DLNA 小註解

DLNA(Digital Living Network Alliance)是一個數位家庭的網路規格, 架構於原有的有線或無線網路之上. 

比較特別的是 DLNA 創造了一些名詞, 它讓大家會看得有點暈眩. 包括: Digital Media Server(DMS)、Digital Media Player(DMP)、Digital Media Controller(DMC)、Digital Media Renderer(DMR)與 Digital Media Printer(DMPr).

DMS 儲存/送出 content, 如電腦.

DMR 接收/顯示 content, 如螢幕.

DMP 檢索/顯示 content, 如電視.

DMC 操作 DMP 或 DMR 的東西, 如遙控器.

DTCP-IP 驗證 DMS, DMR, DMP 之間連線的規格.

參考: http://www.eettaiwan.com/STATIC/PDF/200811/20081117_Allion_TA02.pdf?SOURCES=DOWNLOAD

Cache Aliases 小註解

有一個有趣的問題: 假如 cache size 是 8KB, 而 virtual memory 的 page 是 4KB 會怎麼樣? 這個就是  cache alias的問題.

根據新版的 “See MIPS Run" 這本書的 10.3.4 Cache Aliases and Page Coloring, 名詞定義是這樣:

1. index range = the size of one “set" of cache. 舉例來說 4 KB 的 page 可以對應到 8KB 的 direct map, 或是 32KB 的 4-way set-associative cache.

2. page color = the value of those one or more virtual address bits that choose a page size chunk within the propriate page set.

3. cache aliases = two virtual pointers to the same physical data can produce an alias only if they have different page colors.

若是把 32KB 4-way associative cache memory 看作 4 塊 8KB 的 cache memory, 那麼每一塊都比 4KB page 大一倍, 一抓就有機會抓到和另外一個 way 重疊的內容. 

解法: 只要 virtual address 彼此距離夠遠, 比方說在 4KB page 下間隔 64KB, 那麼每個 page 的 color 都會一樣. 

另外有人說, 可以讓 virtual address 的 bit 12 (假設 page 是 4KB, 12 bis) 強制和 physical address 的 bit 12 一樣, 也就是說每 8KB 的第一個 4KB, 和第二個 4KB 在 physical address 上都沒有重疊. 由於每一個 way 不會抓到一樣的東西, 這就確保了兩個 way 之間的 cache 不會重複. 它聽起來等效於 page size 變成 8KB, 所以應該會沒問題.

先不管軟體實作上的困難, 這種 work around 的 hit rate 將會很低. 每次 hit 到奇數 page, 就要連前一個偶數 page 都抓進來. 那些資料通常已經是過去式了, 所以 cache 的效率應該挺差的.

 

——————————————————–

20090320 重新整理

cache alias 可能發生在 Linux user mode 之間, 也可能發生在 user mode kernel mode 之間.

單純在 user mode 的解法有很多種:

1.  只要 virtual address 彼此距離夠遠, 比方說在 4KB page 下間隔 64KB, 那麼每個 page color 都會一樣均勻, 如小魚的第一個回覆一樣

2.  根據小魚的說法: 奇數 8KB (i.e. 4(2n+1)KB) 和偶數 8KB (i.e. 4(2n)KB) physical address 都對應到不同組的 virtual address. memory cache 既然是根據 virtual address  所做的, 那麼就沒有機會 cache 到重複的  physical address.

有人說用這種說法: “可以讓 virtual address bit 12 (假設 page 4KB, 12 bis) 強制和 physical address bit 12 一樣, 也就是說每 8KB 的第一個 4KB, 和第二個 4KB physical address 上都沒有重疊. 由於每一個 way 不會抓到一樣的東西, 這就確保了兩個 way 之間的 cache 不會重複. 它聽起來等效於 page size 變成 8KB, 所以應該會沒問題.

為了 hit 8KB 裡的一個 Linux 4KB page, 現在必須抓 8 KB cache. 和原來的方式相比, 原來讀到 0x80001-000 的時候, 我們 cache 0x80001-000~0x80002-FFF, 是指望後面進到 cache 0x80002-000~0x80002-FFF 這個 page 等一下會用到. 根據新的方式, 就會變成 cache 0x80000-000~0x80001-FFF 8 KB. 所以還是會有一些差別, 如小魚第四篇回覆所說的: " 0×00410_000 0×00411_000 是無法同時對到 0×40400_000 “. 

本來我有個直覺, 覺得分了類之後, 對於大量連續資料, 又放在虛擬記憶體的連續位置時, 上面的做法可能會降低效率. 但想想也只是 cache 到不同 way cache memory 去了, 應該是還好.

[後記]

1. Kernel space user space 存取同一個 page 的話, 也會有 virtual alias 的問題.

2. 還是要感謝小魚啦!

    

[網路謠言] Dolby AC3 專利快到期了?

根據網路謠言的說法, Dolby AC3 的專利快到期了, 明年大家可以隨便用…

由於美國專利的年限規定, 大約是 17~20 年, 詳情請看 http://www.patent-tutorial.net/node/1114. 所以今年到期的美國專利, 應該是 1992 年獲准, 或是 1989 年申請的. 那麼, 謠言來源應該是針對這兩個專利吧!

“Low bit rate transform code, decoder, and encoder/decoder for high quality audio", USA Patent 5,109,417 and 5,142,656.

不過以網路上的合約範本 (Dolby Digital v.s. Sony) – http://contracts.onecle.com/sonic-foundry/dolby-license-1997-07-28.shtml (網路上真是甚麼都有), 他們簽約的時候, Dolby 授予對方的權利包含下面這些專利, 難道每一隻都過期了嗎?

好像沒有! 剛好只到 5,142,656 會在今年過期. 其中 5,235,671 竟然是 GTE 的專利, 而不是 Dolby 的.

回過頭來看, 爆料者似乎爆過頭了. 萬一大家都亂用 AC3 的專利, 然後被 Dolby 告得半死. 那麼散布此謠言的人, 也沒有好處啊?

其中, Dolby 也有申請台灣的專利. 在歐洲也有好多個同號碼的專利, 假如專利號碼不像電話號碼的可以選號的話, 應該只是互相承認的專利, 然後再不同國家之下都掛一次, 充充場面的吧!

PATENTS
                                    ——-
                   
          Country                              Patent Number
          ——-                              ————-
                                            
          Australia                                631,404      
          Australia                                644,170      
          Australia                                649,786      
          Australia                                653,582      
          Australia                                655,053      
          Australia                                655,535      
          Austria                                  0 524 264      
          Belgium                                0 208 712      
          Belgium                                0 481 374      
          Belgium                                0 524 264      
          Canada                                 1,239,701      
          Canada                                 1,301,337      
          Canada                                 2,026,213      
          Denmark                               0 208 712      
          Denmark                               0 481 374      
          Denmark                               0 524 264      
          France                                   0 208 712      
          France                                   0 455 738      
          France                                   0 481 374      
          France                                   0 524 264      
          Germany                                690 060 11.4    
          Germany                                691 078 41.6    
          Greece                                   0 524 264      
          Italy                                       0 208 712      
          Italy                                       0 524 264      
          Netherlands                            0 455 738      
          Netherlands                            0 524 264      
          Spain                                     0 524 264      
          Sweden                                  0 524 264      
          Switzerland                             0 524 264      
          Taiwan                                    52,047      
          Taiwan                                    53,726      
          Taiwan                                    56,006      
          Taiwan                                    60,430      
          United Kingdom                         0 208 712      
          United Kingdom                         0 455 738      
          United Kingdom                         0 524 264      
          United States of America               4,790,016      
          United States of America               4,914,701      
          United States of America               5,109,417      
          United States of America               5,235,671      
          United States of America               5,274,740      
          United States of America               5,291,557      
          United States of America               5,297,236      
          United States of America               5,357,594      
          United States of America               5,394,473      
          United States of America               5,463,424      
          United States of America               5,479,562  

關於 ETSI (歐洲電信標準協會)

ETSI 全名 European Telecommunications Standards Institute, 功能是制定歐洲電信業的標準, 網址是 www.etsi.org/.

我們可以用它的搜尋功能, 找到對應的規格. http://pda.etsi.org/pda/queryform.asp

只要註冊 e-mail, 就可以搜尋、下載所需要的文件. 每次 download 一個文件, 它就會寄一封到你的註冊信箱. 只要你回信, 他就不會再寄信了. 但是若你 download 了 3 個文件, 都還不回信, 下載的功能就會被封鎖住. 大概是防止機器人吧??

下載的文件有 PDF 和 word 兩種格式, 而且它的頻寬似乎相當大, 速度挺快的.

我比較有機會接觸到的是電視相關的規格, 而 ETSI 的涵蓋範圍包括以下這些:

Technologies