原创 Leetcode 94 二叉樹的中序遍歷

給定一個二叉樹,返回它的中序 遍歷。 示例: 輸入: [1,null,2,3]    1     \      2     /    3 輸出: [1,3,2] 進階: 遞歸算法很簡單,你可以通過迭代算法完成嗎? 注意迭代算法的實現,仔細

原创 Leetcode 面試題14- II. 剪繩子 II

給你一根長度爲 n 的繩子,請把繩子剪成整數長度的 m 段(m、n都是整數,n>1並且m>1),每段繩子的長度記爲 k[0],k[1]...k[m] 。請問 k[0]*k[1]*...*k[m] 可能的最大乘積是多少?例如,當繩子的長度是

原创 Leetcode 面試題48. 最長不含重複字符的子字符串

請從字符串中找出一個最長的不包含重複字符的子字符串,計算該最長子字符串的長度。 示例 1: 輸入: "abcabcbb" 輸出: 3  解釋: 因爲無重複字符的最長子串是 "abc",所以其長度爲 3。 示例 2: 輸入: "bbb

原创 CPU Wiki: Sandy Bridge Microarchitecture 前端(上)

Sandy Bridge 可以看做是自從NetBurst和P6之後的一個全新microarchitecture。Sandy Bridge回溯了最去的drawing board階段,從P6和NetBurst引入了很多有益的結構。儘

原创 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.1~9.3】

Intel命名Sandy Bridge 的微架構是基於Core 2 和Nehalem的第二代設計。在解碼器後面加入了新的uop cache,並且浮點執行單元從128bit擴展到256bit。 Sandy Bridge 有2-8 個core

原创 Microarchitecture:Macro Fusion

Macro-Operation Fusion (Macro-Op Fusion, MOP Fusion or Macrofusion) 在現代的微架構中被廣泛的使用。該技術即爲相鄰的marco-operations 可以被合併爲

原创 CPU Wiki: Sandy Bridge Microarchitecture 前端(下)

MSROM & Stack Engine 在X86指令中,有一些連複雜解碼器都認爲複雜的指令。這些指令會被翻譯成超過4條uops,它們是從microcode sequencer(MS) ROM 繞道譯碼的。此時,MSROM每週期

原创 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.7】

9.7 Stack Engine Sandy Bridge 設計了獨立的stack engine,工作方式與之前的處理器中的Stack Engine相同。 引入7.7 Stack Engine對stack的介紹 棧指令,比如push,po

原创 CPU Wiki: Sandy Bridge Microarchitecture 後端

Execution Engine Sandy Bridge 的後端執行單元處理亂序執行。Sandy Bridge的back end將NetBurst和P6進行了融合。像P6一樣,Sandy Bridge 獨立的處理三種類型的uO

原创 Microarchitecture: HyperThreading(超線程)

線程並行 當代的軟件趨向於運行在多線程模式,或者是並行處理。網絡包傳輸和web服務可以運行以多線程的方式運行以達到更高的性能。甚至是桌面應用也開始增加並行性。Intel架構師已經開始嘗試利用TLP( thread-level parall

原创 【Microarchitecture of Intel and AMD CPU】 2 Out-of-order execution

Intel 的第六代微處理器,從PPro開始,提供了一種重要的技術提升,亂序執行。如果一條指令的輸入因爲某些原因在當前時刻還未準備好,那麼我們可以嘗試執行這條指令後面的指令。當然,處理器需要檢查時候後面的指令需要前面的指令的執行結果。如果

原创 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.11-9.15】

9.11 部分寄存器訪問 一個通用寄存器的不同的部分可以存放在不同的臨時寄存器中,以減少僞依賴。在向寄存器的一部分發起寫操作,後續跟隨一個讀取完整寄存器的操作時會遇到問題。 ; Example 9.4. Partial register

原创 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.8-9.10】

9.8 寄存器分配和重命名 所有的整數,浮點,MMX,XMM,YMM,標誌寄存器,並且可能段寄存器也可以被重命名。浮點數控制字也可以被重命名。 寄存器重命名被RAT(寄存器重命名錶)和重排序緩衝區控制,如圖6.1所示。來自譯碼器和stac

原创 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.7~9.11】

9.7 Stack Engine Sandy Bridge 設計了獨立的stack engine,工作方式與之前的處理器中的Stack Engine相同。 引入7.7 Stack Engine對stack的介紹 棧指令,比如push,po

原创 SPECCPU2006 Spec2006 使用說明

工具介紹 SPEC CPU 2006 benchmark是SPEC新一代的行業標準化的CPU測試基準套件。重點測試系統的處理器,內存子系統和編譯器。這個基準測試套件包括的SPECint基準和SPECfp基準。 其中SPECint2006基