Note: 記憶體

1
NAND Flash 快閃記憶體
a )是一種電子清除式可程式唯讀,可以重複的寫入和擦去,
     簡單來講就像是記事本.
b) 當傳遞的橋梁,充當資料交換的媒介,如手機、相機、MP4、筆電都有在使用此裝置;
    而最早NAND技術的發明人之一是東芝
2
Nand flash 跟 dram的 用途
a)電腦常用的記憶體分兩種: 揮發性和非揮發性.
* 揮發性記憶體: 只要電腦關機就會流失資料, 但是速度很快, 所以要幫 CPU 運算作儲存的, 必須用揮發性記憶體. 代表性的就是 DRAM 和 SRAM.
* 非揮發性記憶體:  關了電之後, 資料還存在. 比如 MP3.  非揮發性記憶體記錄和存取的速度通常很慢, 所以不適合幫 CPU 運算, 只適合關機後還要留存資料的應用.
                         代表性的包括: ROM, PROM, EPROM, EEPROM, Nand flash, Nor flash 等

3 Nand flash 和 DRAM

a) 在製程上有相通的部分. 所以有些 DRAM 廠, 再加個 10~20% 的建廠成本, 就可以轉成 DRAM/NAND flash 兩用的生產工廠

b)以 Samsung 和 Hynix 為主要代表. 因為 NAND flash 的製程技術在 Toshiba 手上, 所以 DRAM 廠要生產 NAND flash, 就必須先搞定 Toshiba 再說, 否則早晚被告. 這也是很多 DRAM 廠沒投入 Nand flash 生產的原因之一. 當然啦, 力晶計畫未來要蓋的兩座 12 吋廠, 都是 DRAM/Nand flash 可轉換的. 但是台灣其他 DRAM 廠大概還沒有這樣的規畫.

 

4 Nand flash 與 Nor flash的分別

a)Nand flash 儲存空間較大, 做儲存之用,例如目前我們常用的記憶卡或是MP3

b) 兩年前只有Samsung跟Toshiba有能力去生產製作, 但是因為Toshiba的產能不夠  所以當時的市佔率 Samsung=80% Toshiba=20%, 兩年前所製造的MP3或是Pen Diver 不管是什麼廠牌 裡面的Flash 一定是這兩個廠牌. 近年來 SST 跟 Hynix也都投入Nand Flash的生產 不過功能還不是很穩定,製造商還在觀望, 市場上還是以Samsung佔了七成的市佔率領先.  台灣的廠商還沒有能力去製作

c) Nor Flash基本上空間容量很小

一般都是被利用來寫程式使用, 工程師將整個產品所需要的驅動程式或是機種的分位寫在Nor Flash裡面 讓電子產品能夠順利執行程式

一般來說 Nor Flash很多廠商在做

除了上面三個Nand Flash的廠牌外, 國外還有Intel在製作. 國內有旺宏,宜揚,華邦……等都有在製作

 

總結

Nand Flash用來當儲存資料用

Nor Flash用來寫程式用

 

5

固態硬碟概念股

下一代NAND Flash應用面殺手級產品將是固態硬碟(SSD),然目前與傳統硬碟相較,NAND Flash成本仍不具競爭力,因此,預計SSD要在市場佔有一席之地,勢必得等到2008年之後

a) 台灣的模組廠:威剛,創見,勁永…金士頓(的協力廠商)…
b) 最下游IC通路商

生產SSD控制晶片的慧榮科技(美國掛牌)可能看看台灣的ic設計廠技術是否能做出來包含:群聯,安國

上游台灣的半導體廠好像沒有獨立製造高容量的NAND型快閃記憶體技術…但是有與外國技術合作的可能有機會代工:力晶,茂德….

希捷、東芝、三星電子、富士通、日立則籌組了Hybrid Storage Alliance。

美商新帝(SanDisk),三星,海力士,英特爾

2008年SSD絕對是NAND Flash殺手級應用,但NB大廠對於SSD接受度仍將視NAND Flash成本而定,

第4季50奈米製程逐漸成為主流,成本將進一步下降,

而2008年NAND Flash大廠亦積極導入40奈米製程,都將驅使NAND Flash成本下滑,帶動SSD應用市場起飛。

原本記憶體分為ROM及RAM兩種,因其特性的關係,故彼此壁壘分明,彼此無法代用……

c) RAM特性:為速度快,可隨機快速的存取或抹除更新資料,但電源消失則所有資料隨著消失. 根據其特性,電腦遂將其執行程式及顯示圖形….等資料放在RAM中,因此能在電腦上快速的執行程式並顯示圖形, 當然電源關掉後則所有資料全部消失,等待新的執行命令.

d)
ROM特性:為速度較慢,其內部資料的存取或抹除更新手續非常複雜及困難,但其特點為電源,關掉後,其原本保存的資料不會消失,因此電腦遂將其作業系統開機程式等資料燒錄在ROM內,因此電腦關掉電源重新開機後,就能執行其開機程式…

由上觀之RAM與ROM彼此角色不能互代.

但Flash Memory的發明打破了這種均勢, 因Flash Memory不但可隨機快速的存取或抹除更新資料,且關掉電源後,其原本保存的資料不會消失,因此俱備了RAM與ROM的特性,而成了新一代可能取代RAM與ROM的新記憶體.

很明顯的,從前UVPROM(紫外線清除試唯讀記憶體)完全從市場上消失,因以完全被容量更大,速度更快,成本更低的Flash Memory所完全取代,未來大量生產成本更降低後,很快的可完全取代所有的ROM(包括現在仍在使用的EEPROM及OPTROM).

Flash Memory當然也可以取代RAM(包括Dram及Sram).只是目前其速度尚不夠快,因電腦顯示圖形,其解析度愈來愈高,執行速度愈來愈快,故須極快速的DDR,DDR2,DDR3記憶體才能應付其需要,但其他不需極高速的Dram,Sram(如在cpu,mpu內部執行程式所需的Ram)Flash Memory取代之綽綽有餘.

未來Flash Memory速度增快甚至完全取代所有的RAM是可預期的.而目前Dram市場長久低迷,而Flash Memory在消費性電子產品上屢有斬獲,且目前所有半導體所積極研發非揮發性嵌入式記憶體(如手機,數位像機…等晶片,預估每年有二三十億美元的市場.)更是以Flash Memory為內部主體,故目前處於虧損狀態的Dram生產線改為當紅炸子雞的Flash Memory,也是可預期的.

6 高密度sata connector

1) sata connector(sata 連接器)

設計上說明: 比如說以前的連接器Pin針的數量為20針,但隨著科技的發展,慢慢地發展為40針,或者更高了.  其次,從連接器的安裝上講的,因為高科技的發展,晶片越來越少了,而連接器也變得越來越微型化了,在同一空間內可以安裝的連接器不再局限於一個或兩個,可以允許安裝更多的連接器了。最後,從連接器的參數上講,連接器的位數越來越多,但是間距比原來越小。配差高度越來越小,占的空間越來越少。

2) USB與SATA? 誰比較快?

SATA   版本 頻寬       速度

SATA 3.0 6Gb/s 600MB/s
SATA 2.0 3Gb/s 300MB/s
SATA 1.0 1.5Gb/s 150MB/s

 

USB 版本  速率稱號         頻寬          速度

USB 3.0 超高速
SuperSpeed
5Gbps 約500MB/s
(5000Mbit/s)
USB 2.0 高速
Hi-Speed
480Mbps 約60MB/s
(60,000KB/s)
USB 1.1 全速
Full Speed
12Mbps 約1.5MB/s
(1,500KB/s)
USB 1.0 低速
Low Speed
1.5Mbps 187.5KB/s
(192000B/s)

 

a)
SATA速率始終比USB穩定以及快速
SATA重複讀寫的效率也比較好
USB的外在影響因素太多
而且重複讀寫多次其實很容易出現毛病

如何判斷Sata connector機械性能的優劣?

b) Sata connector(Sata 連接器)機械性能,如果就連接功能來看,插拔力是重要

c) 機械性能。插拔力分為插入力和拔出力,兩者的要求是不同的。在有關標準中有最大插入力和最小分離力規定,這表明,插入力要小,而分離力若太小,則會影響接觸的可靠性。這一個機械性能是很多人都很關注的,但是Sata connector(Sata 連接器)的另一個重要的機械性能是連接器的機械壽命,機械壽命實際上是一種耐久性指標,在國標GB5095中把
它稱作機械操作。它是以一次插入和一次拔出為一個迴圈,以在規定的插拔迴圈後連接器能否正常完成其連接功能作為評判依據。而機械性能的優劣主要跟接觸件結構、接觸部位鍍層品質以及接觸件排列尺寸精度有關。

d)SATA和PATA有什麼差別?

* SATA是現在主流的排線唷!
其傳輸數度都比PATA來的快!

* PATA就是指原本的IDE介面,並非SATA2唷!

*SATA-1: 又被稱作是SATA-150,傳輸速度為150MB/s(或者1.2Gb/s),而通常硬碟的速度都是33MB/s的整數倍,最低的也是16MB/s、8MB/s,而SATA是150的原因通常被認為是SATA標準協會的商業技巧,新標準一定要高於舊標準,比PATA-133更高的只能是166、200,但是新技術由於它的不成熟性因此很難達到這樣的提高,所以150MB/s是謹慎而且合理的選擇。
*SATA-2在2004年正式推出,也被稱作SATA-300,符合ATA-7規範,傳輸速度可達300MB/s(或者2.4Gb/s)。SATA的速度提升是成倍的幾何級數增長,這點和PATA是一級級的算術級數增長是不同的
*  SATA-2比SATA-1進步的地方:
* 300MB/s的高傳輸速度;
* 支持真正的SATA指令排序(NCQ)。
*  SATA-2資料線長度最多2m。SATA-1只是1m,PATA更短到50cm。
* 全新的介面更穩固。

廣告

Note:物件導向

oop 有3大特色 data abstraction + inheritance + polymorphism

物件導向程式設計三個重要的特性

資料封裝(Encapsulation)、

繼承(Inheritance)

多型(Polymorphism)


三個物性的觀念:

資料封裝 : 將程式碼與其所處理的資料緊密結合,並保護兩方面在外部介面的安全與防止誤用的機制

封裝可以想成是受保護的封包以防範程式碼或資料被其他定義在封包外的程式碼任意地存取。

存取封包內的程式碼和資料是由定義完整的介面來嚴格控制

對Java而言,資料封裝的基本就是類別(Class)

一個類別定義了會被一組物件所共享的結構與行為(資料與程式碼)

當你建立類別時,你將指定構成該類別的程式碼與資料。這些元素共同被稱為類別的成員

由類別所定義的資料被稱作是成員變數或是實例變數

而作用在這些資料上的程式碼則稱為成員方法或就稱為方法

在正確撰寫的Java程式中,方法定義了成員變數應該如何使用

這表示行為與類別的介面是由操控實例資料的方法所定義。

因為類別的目的在於封裝複雜性,便有了將實作複雜性隱藏在類別內的機制。每個類別中的方法或變數可能被設定為隱密的或公開的

類別公開的介面表示所有該類別的外部使用者必須,或可以知道關於它所有的事情。

隱密的方法或資料只有該類別方法的程式碼可以存取。

所以,任何其他不屬於類別方法的程式碼皆不得私入方法或變數。

因為在你其他部份的程式中,一個類別的私入成員只能經由該類別的公開方法來存取,你可以確保沒有不正確的動作會介入。

當然,這也代表公開介面應該謹慎地設計,不要洩露太多類別內部運作的細節。

資料封裝就是將資料分成私用(Private)、保護(Protected)、公用(Pubic)等,達到資料保密的目的。


繼承:一個物件得到另一個物件特性的過程。這點非常重要,因為它支援了階層式分類的觀念。大部份的知識是以階層式(也就是由上而下)的分類法而可管理。例如,獵犬在分類中屬於狗的一種,換句話說也是哺乳頹的一種,而哺乳類是隸屬於一個更大的類別動物之下。如果沒有階層,每個物件就必須明確地定義自己所有的特性。但是,利用繼承,物件只需要定義那些在它的類別中特有的屬性。它可以從它的父層繼承共有的屬性。因此,是繼承這個機制才能讓一個物件成為一個較一般性案例中的特例。

繼承也會與封裝相互作用。如果一個類別封裝了每些屬性,任何子類別就會有相同的屬性再加上另外它特有的部份。這是讓物件導向程式的複雜度成線性成長而非幾何成長的關鍵觀念。一個新的子類別繼承其所有前代的所有屬性。它不會與系統中其他大多數的程式碼有無法預期的交互影響。

有繼承的關係後,父類別 (Super class) 中的資料 (Data) 或方法 (Method) 在次子類(Subclass)就可以繼承使用,次子類別的次子類別也可以繼承使用,最後即能達到資料重覆使用的目的。

多型: 一個讓單一介面用在一般性動作的功能。特定的工作取決於狀況的實際性質。更具體的說,多型的概念常以一句話來解釋:「一個介面,多個方法」。這代表有可能可以設計一個通用的介面給一組相關動作。這因為讓相同的介面用於指定一般的分類而降低複雜度有幫助。選擇特定的動作(也就是方法)應用於各種情況是編譯器的工作。身為程式設計師的你,不需要手動去選擇。你只需要記住和應用通用的介面即可。

例如,父類別(Super Class)中有一個名叫做 show() 的方法,用來顯示學生的姓名資料,次子類別中也有一個名叫 show() 的方法,用來顯示學生的成績資料,這二個方法都稱為 show(),但作法上不同,程式碼也不同,次子類別的 show() 方法將蓋掉父類別的 show() 方法,這就是多型的運作方法。

Note:網路程式設計

chap24

client-server structure

IP address

TCP/ IP Protocal

connection orientated protocal : TCP

conntction-less oriented protocal: UDP

port:

port80- http

port21; FTP

port23: Telnet

socket

Java

網路類別: at  java.net 這套件下

InetAddress類別

Socket類別

– most often use: server address and port

-建立好socket物件,

   by getInputStream 方法, to get InputStream類別物件

   by getOutputStream方法, to get OutputStream 類別物件

ServerSocket類別:  to set up socket for server side

DatagramSocket類別: for UDP socket

DatagramPacket類別: for UDP socket

 

 

 

 

Note: Assertion

assertion: 

Main function: to guarantee the code critical accuracy.

語法: 

assert<檢查>;

asseert<檢查>:<運算式>

<檢查>: Boolean, true or false

When to use:

1檢查流程的不變性

2內部執行的不變性

3私有函數結果的檢查

4程式運行中的一致性

 

 

Note: Java SE6

Basic

p 3-11 

程式基本骨架:
public class
{
public static void main (String argv[]}
{

}
}

寫 Java Applet
{
public void init()
{

}
public void paint(java.awt.GRaphics g)
{

}
}

p4-2

程式標記(token)
1關鍵字:小寫
2識別字
1)變數
2)標籤
3)類別
4)方法

3literal
4符號

p-4-7

資料型態

基本資料型態:3類8種

整數類
byte
short
int
long

浮點數類
float
double

其他類
boolean
char

p4-12

變數的宣告: 任何地方都可,只要在使用之前
例:
int i;
cha j;
choose appropriate data type. and to make sure the data range first.

p-4-12

轉型
自動轉型
強迫轉型

byte- short-int-long-double
小——————-大 =放大轉型

p4-17
字串

String 用" "
cha lit 用’ ‘

Note: IDE(Integrated development environment) 整合式開發環境

Free and popular tools:

1 NetBeans

1) full funcitonof Java IDE
2) All OS have suitable versions
3) having Tomcat, GlassFish server
4) Support Drag&Drop and WYSIWYG

2 Eclipse

1) XXX MOST POPULAR FOR JAVA DEVELOPER
2) Highest version: Galieo3.5
3) Feature: plugin, keeping updateing
4) Support: virtualization on programming design

Appropriated IDE can raise productivity

Note: Java 閱讀自學筆記

我很篤定IT的未來與機會將在以下幾個大主題
雲端運算
大數據
物聯網

物聯網已被定義為中國戰略性產業,寫進了“十二五”規劃,隨著行業發展的日益深入,傳感器數量的增多,其產生的數據量級要遠超網絡。物聯網就是以“大數據”為驅動的產業,而"不是以元器件和設備驅動的"。但物聯網的核心並不在感知層和網絡層,而是在應用層。因此物聯網和大數據之間的聯手,將產生巨大的市場規模,衍生更有價值的商業模式。

台灣的面板產業真是很麻煩,面板老闆還想要公銀以債換股. LED也很糟,這新行業在第三波工業革命下都是LOSER. 未來不是"不是以元器件和設備驅動" 的經濟型態.

最近看了Java的 一些主題,還只是概論,但卻很有整體感,不再見數不見林.
幾個主題的自學都在進行中,我應該是走open souce這一方向. 要多寫學習心得和筆記

選一個主程式語言: Java
輔助語言:SQL, HEML,Java script, JQuery, Ajax
熟網路原理,通信協定,我熟ccna,ccda

其實專精需求分析,做專案報告也是基本功,可以找些項目來練習

Java SE: 這部分是CORE,要好好學,我本週會買本書來看.
框架: Tomcat, web logic, JBoss app server. Jboss是我的重點
基於框架技術的開發: Struts JSF, Spring, Hibernate
我的重點會放在Struts2, 和 Spring

自學的我,只能先求大而全,再求精而深.
我只期望我能掌握一下兩大重點
1 HTML,SQL, java script, jQuery, Ajax
2 Striut2,Spring,Hinernate. Jboss
Spring是個好框架,
我喜歡找no-cost technology,想做一個no-cost small business.

在IDE(independent development environment) 方面,
NetBean 有些優點,
1 full function to support Java IDE
2 All OS has version
3 self carry Tom cat, Glassfish server
4 Support Drop and drag and WYSIWYG

Eclipse是有視覺化設計, 這IDE很受歡迎吧.特色是 外掛程式機制,持續更新的外掛

聽說用IDE可以提升生產力,是適當用些工具是好的吧.
SQL語法要再學好一點,超好用的,省去很多過程, 用在Java開發, 功能很強大好用很省事.

專案管理方面,我的重點是
ant http://ant.apache.org
Maven
我覺得我把這搞熟比較務實

MVC設計模式是一個重點,還在閱讀中
優點:
1Controller, Model,VisualGraph sepereated. reduce coupling of each module. work independently
2 similar to modulization, and can be plug in and out.
3 mainly for web development , for main framework: struits, JSF
缺點: 降低系統性能

Ajax開發框架,是DWR, Dojo
Dojo功能強大 http://www.dojotoolkit.org

市面上有2個流行的web service開發框架
1 CXF : free Java SOAP 框架, 我的重點!!
2 Axis2

Cloud computer其實都是概念.
平行設計模型: Map reduce是重點

Big data的分布儲存技術.
Google的 GFS
Hadoop的HDFS

Hadoop的分散式資料庫 Hbase. 這是我的重點

其實我今年已讀過azure. Hyper-V 應是我的重點, 只是覺得現有的服務好像都開發出來了,可能要思考更在地化,更客製化的服務. 高齡化服務如果不排斥是一個方向,我有看到台灣已經有了.

Hadoop的 Hbase和 map reduce是我的重點.
其實我上個月有借到MongoDB的書,我想掌握但還沒到那裡. 英國10Gens很強
這些技術台灣產業界都不強, 我真是為台灣產業發展方向憂心.

ANT

Ant is an open source build tool
(a program for putting together all the pieces of a program) from the Apache Software Foundation.
是專案建置工具 (如GNU make,nmake,jam)

Any is suitable for medium small project

The utility is the most commonly used build tool for programs written in Java.

Although similar to the GNU make utility that it replaces, Ant is said to be more portable and simpler to use.

Ant is independent of both platform and development environment.

Make (the most common build tool) and most alternatives are based on a particular shell or command interface, and for that reason are limited to the type of operating system that uses that shell.

Ant uses Java classes rather than shell-based commands.

Developers use XML to describe the modules in their program build, what those modules should do, and any dependencies between them and other parts of the program. Ant determines the parts of the program that have been changed since the last compilation, as well as any parts of the program that are dependent on those components, and then compiles only those parts that require it, in the proper order.

優點:
跨平台
配置簡單,基於XML(很強的MARK UP LANGUAGE).
Netbean 有ant腳本.

最大的功能是: netbean和eclipse之間的橋樑

Ant 建置檔有四個基本區塊
1 project: project needs a name and target for reset execution
2 property: 常數
3 target: 用compile 的target
4 task:

project建置 build.xml(XML)

建置工具
用microsoft visual studio , for MS build(用mote pad opencspooj file)

用Ruby: 用Rake tool, 做coding, testing and packing

用Maven: Java-oriented. software projct management tool
http://maven.apache.org

Ant:
讀這個 link : http://ant.apache.org/manual/index.html

to build 指令稿: build process automation. Also a source code. belong to version control system (編號,tag,store)

MVC設計模式

設計模式:

MVC設計模式:Very famous
Model-view-controller (MVC)

model-view-controller (MVC) design pattern for successfully and efficiently relating the user interface to underlying data models.

The MVC pattern is widely used in program development with programming languages such as Java, Smalltalk, C, and C++.

The MVC pattern : for the reuse of object code and a pattern that allows them to significantly reduce the time it takes to develop applications with user interfaces.

three main components or objects to be used in software development:

1)A Model , which represents the underlying, logical structure of data in a software application and the high-level class associated with it. This object model does not contain any information about the user interface.

2)A View , which is a collection of classes representing the elements in the user interface (all of the things the user can see and respond to on the screen, such as buttons, display boxes, and so forth)

3)A Controller , which represents the classes connecting the model and the view, and is used to communicate between classes in the model and view.

將控制器,模型,視圖分割開來

優點:
1控制器,模型,視圖分開各模組耦合度降低,各司其職.
2類似模組化,可插拔
3主要應用 web開發
4主流框架: Struts, JSF,

缺點:降低系統性能

Popular Java EE framework

1 Struts and webwork

Struts: 缺點- complex development. and Expensionbility is compatatively weak

Struts2(=Struts1+webwork), Very good for MVC mode, very concise.

2 Tapestry framework

3 Spring framework: A good framework. light solution
IOC(inversion of control)Technology, also called Deoendency injection, Hollywoodrules: focus on relation between Object and interface

4 Hibernate
ORM
POIO

Corporation project prefer
1 JSF (java server face)
2 EJB 3.0 業務層技術: 重量級solution

%d 位部落客按了讚: