วันเสาร์ที่ 19 เมษายน พ.ศ. 2557

What Is Software Engineering Anyway?


software engineering คืออะไร

เช่น โปรแกรมเกมส์ ต่างๆ , ระบบหุ้น , การสื่อสารต่างที่ใช้คอม


ตัวอย่างคือ

เว็บไซต์ขนาดใหญ่ที่ซับซ้อน ซึ่งหากระบบล่มทุก 90 นาที จะทำให้เสียรายได้ไป $ 2.8 M

อะไรคือ code ที่ต้องเขียน
เราสามารถช่วยลูกค้าได้อย่างไร?
อะไรคือคำสั่งแก้ไขปัญหาของลูกค้า?
ทำอย่างไรที่จะให้ผู้ใช้ตอบโต้กับระบบ?
อะไรคือปฎิบัติการ ระบบ,ภาษา,ฮาร์ดแวร์ ไปสู้ผู้ใช้?
อะไรคือโครงสร้างทั้งหมดของระบบซอฟแวร์ และ ทำอย่างไรให้มีองค์ประกอบที่แตกต่างกับระบบอื่นๆๆ?
ทำไรอย่างไรไห้ทีมของเรามีองค์ประกอบที่ดี?
สามารถจบเกมส์ในเวลาวันหยุดช๊อปปิ้ง?


SE == CS ?
นักวิทยาศาสตร์จะสร้างหลายสิ่งโดยศึกษาจากสิ่งใหม่ๆ วิศวกรจะศึกษาหลายสิ่งและสร้างสิ่งที่มีคุณภาพ
นักวิทยาศาสตร์ต้องการความสำเร็จพัฒนาตามหลักวิทยาศาสตร์ วิศวกรจะหลีกเลี่ยงวิศวะกรรมที่ล้มเหลว
นักวิทยาศาสตร์คอมพิวเตอร์ต้องการเข้าใจ อัลกอริทึม และ ทฤษฎีพื้นฐานของคอมพิวเตอร์ วิศวกรซอฟแวร์ต้องการศึกษาออกแบบแหล่งที่มา และ ปฏิบัติดีที่สุดสำหรับการสร้างระบบซอฟแวร์ใหม่ๆ นักวิทยาศาสตร์คอมพิวเตอร์ต้องการรู้พื้นบานของงานเทคโนโลยีและปรับปรุง วิศวกรซอฟแวรืต้องการรุ้ลักษณะของเทคดนโลยีดังนั้นจึงสามารถออกแบบให้เหมาะสมกับเทคโนโลยีในระบบซอฟแวร์  เปรียบร้านขายชีทและชีทก้อนเป็น ซอฟแวร์ และมีรับชีทจากหลายๆประเทศ จากนั้นก็ขยายร้านเป็นหลายๆร้านเพื่อลองรับ เมือร้านชีทมีชีทเยอะเกินและส่งออกไม่ทันทำให้ชีทเน่าเสีย แก้โดยการทำโรงเก็บชีทไว้แล้วค่อยแจกจ่ายให้แต่ร้านค้าเพื่อไม่ให้ร้านมีชีทมากเกินไป


เรื่องของ CS เช่น OpenGL Computer Vision & interactivity ซึ่งจะพูดถึงเรื่องของการจับรุปภาพในส่วนต่างๆของภาพจะมี Part-Based และ Holistic โดยที่ Part-Based จะจับแบ่งส่วนต่างๆของคน ส่วนHolistic จะแบ่งสัดส่วนทั้งหมดของรุปภาพเท่าๆกัน เมือจับสองส่วนนี้มารวมกันจะได้เป็น APHOG
10250137_620734581350594_8071417187751854270_n

วันเสาร์ที่ 22 มีนาคม พ.ศ. 2557

CPU

About AMD Phenom II X2 555 Black Edition

                  หลักการที่มาของ AMD Phenom II X2 555 Black Edition ยังเป็นการมาจาก Phenom II X4 Codename
Deneb ที่ถูกปิดการทำงานของคอร์ที่มีความไม่สมบูณ์ 100% จนทำให้เป็น Phenom II X2 Codename Callisto

วันเสาร์ที่ 25 มกราคม พ.ศ. 2557

ARM & MIPS




AMR


 Arm เป็นไมโครโปรเซสเซอร์ ที่ถูกออกแบบเป็นหน่วยประมวลผล ซึ่งได้แนวความคิดจาก RISC (Reduce Instruction Set Computer) เป็นโปรแกรมที่สามารถลดจำนวนคำสั่ง ให้เหลือน้อยที่สุด เพื่อให้เกิดการประมวลที่มีประสิทธิภาพ และรวดเร็ว เนื่องจากมีการประมวลผลแบบจุลภาค (microprocessor) โดยแต่ละชุดคำสั่งจะทำงานเฉพาะตามคำสั่ง ที่โปรแกรมสั่งเท่านั้น 




    ARM เป็นชุดคำสั่งแบบ 32 - bit เป็นสถาปัตยกรรม (ISA) ที่พัฒนาโดย บริษัท ARM Computers ARM เป็นที่รู้จักกันเป็น Advanced RISC Machine  ซึ่งก่อนหน้านั้น เป็นที่รู้จักกันในชื่อ Acorn RISC Machine สถาปัตยกรรม ARM เป็น ISA 32 บิตใช้กันอย่างแพร่หลายในแง่ของตัวเลข การผลิต  ARM เป็นโปรเซสเซอร์ สำหรับคอมพิวเตอร์ส่วนบุคคล Desktop ซึ่งผลิตโดย Acorn Computers ตอนนี้ผลิตภัณฑ์ของ ARM ถือครองตลาดในอุตสาหกรรมไอที มีลูกค้าที่ใช้ผลิตภัณฑ์ของ ARM ได้แก่ บริษัท ไอบีเอ็มและแอ๊ปเปิ้ล เป็นต้น 




           ด้วยความเรียบง่ายและการใช้พลังงานต่ำของหน่วยประมวลผล  ARM ทำให้ ARM เหมาะสมสำหรับกับการใช้ประกอบเป็นหน่วยประมวลผล ในผลิตภัณฑ์ต่างๆ เช่น มือถือและอุปกรณ์อิเล็กทรอนิกส์ที่ฝังหน่วยประมวลผลของ ARM ไว้เป็นค่าใช้จ่ายที่ค่อนข้างต่ำและขนาดเล็กไมโครโพรเซสเซอร์และไมโครคอนโทรลเลอร์ รวมทั้งในเครื่องเล่นเพลง ไอพ็อด, เครื่องเล่นเกม เกมบอยแอดวานซ์, และ พีดีเอ เป็นต้น

Arm  CPU มีคุณสมบัติดังนี้
    1. รีจิสเตอร์สามารถใช้งานได้มากเพียงพอ
    2. ใช้รูปแบบคำสั่งแบบ load and store ซึ่งเป็น การประมวลผล โดยจะทำการโหลดข้อมูลจากรีจิสเตอร์หรือหน่วยความจำ หลังจากนั้นจึงการประมวลผลเพื่อให้ได้ผลลัพธ์ หลังจากนั้นก็จะนำไปเก็บอยู่ในรีจิสเตอร์เพื่อไปสู่กระบวนการถัดไปหรืออาจ จะบันทึกกลับลงสู่หน่วยความจำ
    3. มีโหมดของการอ้างตำแหน่งแอดเดรสที่ไม่มากนัก โดยสามารถกระทำได้โดยอ้างตำแหน่งจากรีจิสเตอร์ และคำสั่งเพียงคำสั่งเดียวเท่านั้น
    4. ขนาดของคำสั่งมีขนาดคงที่ คือ จำนวน 32 บิต
    5. ไม่มีการสนับสนุนในการเข้าถึงหน่วยความจำผิดตำแหน่ง (ARMv6 ได้รับการสนับสนุน ให้เข้าถึงโดยมีข้อยกเว้นบางอย่างที่เกี่ยวข้องกับการโหลดและเก็บ โดยการจัดเก็บคำหลายคำสั่ง)
    6. การทำงานส่วนใหญ่ทำงานรอบเดียว

คุณสมบัติเพิ่มเติม
   1. ควบคุมการทำงาน ลดความซับซ้อนและลดขนาดของโปรแกรม
   2. โหลดและจัดเก็บหลายอย่างได้พร้อมกัน เพื่อเพิ่มจำนวนผลลัพธ์ของข้อมูล
   3.การปฏิบัติตามเงื่อนไขทั้งหมด เพื่อเพิ่มเงื่อนไขการทำงานของคำสั่ง
   4. มี shift บิตแยกต่างหาก ก่อนที่จะเข้า Arithmetic logic unit  เพื่อเพิ่มความเร็วในการประมวลผล


How to install ARM simulator






MIPS

MIPS เป็นหน่วยประมวลผล 32-bit แบบ RISC ผลิตโดย MIPS Computer Systems(ปัจจุบันคือ MIPS Technologies)

โปรเซสเซอร์ที่มีสถาปัตยกรรมแบบ MIPS (Microprocessor without Interlocked Pipeline Stages) จะแบ่งการทำ 1 คำสั่งออกเป็น 5 ระยะคือ
1.      IF (instruction fetch) เป็นการนำ (fetch) คำสั่ง (instruction ประกอบด้วย opcode และ operand) ขึ้นมาจากหน่วยความจำ โดยปกติจะนำไปเก็บไว้ในเรจิสเตอร์ที่อยู่ในโพรเซสเซอร์ เพื่อที่โพรเซสเซอร์จะได้รู้ว่าต้องทำคำสั่งอะไร
2.      ID (instruction decode) หลังจากที่โพรเซสเซอร์รู้ว่าต้องทำคำสั่งอะไรแล้ว เช่น คำสั่งคือ R0 = R1+ R2 ก็ต้องถอดรหัส (decode) ออกมาว่าต้องใช้ตัวถูกดำเนินการ (operand) ที่อยู่ในเรจิสเตอร์เบอร์ 1 และเบอร์ 2 ในขั้นนี้จะส่งสัญญาณที่มีค่า 1 และ 2 ไปให้มอดูลเรจิสเตอร์เพื่อให้ได้ค่าที่อยู่ในเรจิสเตอร์เบอร์ 1 และเบอร์ 2 ตามลำดับ
3.      EX (execute) จะทำตัวดำเนินการ (operator) ตามที่ระบุไว้ใน opcode เช่น add คือเอาตัวถูกดำเนินการ (operand) ทั้งสองตัวที่เตรียมไว้แล้วในระยะ ID มาบวกกัน
4.      MEM (memory) ในระยะนี้จะทำเฉพาะคำสั่งที่มีการอ่าน/เขียนหน่วยความจำ เช่น load/store เป็นต้น คำสั่งอื่นๆ จะผ่านระยะนี้ไปเฉยๆ
5.      WB (write back) ในขั้นนี้จะเขียนผลลัพธ์ลงเรจิสเตอร์ เช่น เขียน R1 + R2 ลง R0


How to install MIPS simulator


ขอบคุณ www.vcharkarn.com

 www.scribd.com


Floating Point Number

Floating Point Number

เนื่องจากการแปลงจำนวนจริงฐานสิบเป็นจำนวนจริงฐานสองส่วนใหญ่ให้ผลลัพธเป็นจำนวนจริงฐานสองที่มีตัวเลขหลังจุดทวินิยมไม่รู้จบ การตัดสินใจว่าจะใช้จำนวนตัวเลขหลังจุดทวินิยมเป็นจำนวนกี่หลัก ขึ้นอยู่กับความแม่นยำของค่าที่ต้องการคำนวณ ซึ่งมีความแตกต่างกันออกไปในแต่ละงาน ดังนั้นในกรณีที่เป็นจำนวนจริงไม่รู้จบ ผู้ใช้จึงควรเป็นผู้กำหนดความแม่นยำตามต้องการ
            การจัดเก็บจำนวนจริงฐานสองรูปแบบที่เหมาะสมกับการทำงานของระบบคอมพิวเตอร์เป็นเลขฐานสองในระบบ Floating Point Number ซึ่งมีความต้องการดังนี้
            - เก็บค่าของจำนวนจริงให้ได้ความแม่นยำมากที่สุด
            - ใช้จำนวนบิตให้น้อยที่สุดเท่าที่เป็นไปได้
ความยากของปัญหานี้อยู่ที่การใช้จำนวนบิตที่น้อยที่สุด การแก้ปัญหาที่ง่ายที่สุดคือการเลียนแบบตัวเลขแบบวิทยาศาสตร์ (Scientific Notation) ซึ่งออกแบบมาสำหรับใช้แสดงค่าจำนวนจริงฐานสิบที่มีค่าสูงมากและต่ำมาก เช่น ความเร็วของแสงมีค่าเป็น 300,000,000 เมตร/วินาที หรือ 3.0 ´ 108  อนุภาคของฝุ่นมีมวล 0.000 000 000 753 กิโลกรัม หรือ 7.53 ´ 10-10 เป็นต้น

จำนวนจริง 123,000,000,000 เขียนเป็นตัวเลขแบบวิทยาศาสตร์ได้เป็น
            1.23 ´ 1011        
ค่า 1.23 เรียกว่า สัมประสิทธิ์ (coefficient) ซึ่งกำหนดให้มีค่า 1 £ c < 10 ส่วน 1011 นั้น 10 เป็นฐานของตัวเลข (base หรือ radix) และ 11 เป็นกำลัง (power หรือ exponent) รูปแบบตามข้อกำหนดนี้เรียกว่า Normal Form
            ในระบบคอมพิวเตอร์มีระบบสำหรับแสดงผลตัวเลขแบบวิทยาศาสตร์ เช่น 123,000,000,000 แสดงผลเป็น 1.23E+11 (1.23 ´ 1011) และ 0.000001 แสดงผลเป็น 1.0E-6 (1.0 ´ 10-6)           
           
จำนวนจริงฐานสอง เช่น 11.001012 เขียนในลักษณะเดียวกับตัวเลขแบบวิทยาศาสตร์ และกำหนดให้มีรูปมาตรฐาน (Normal form) คือ จำนวนเต็มหน้าจุดทวินิยมต้องมีค่าเป็น 0 และจำนวนเต็มตัวเลขหลังจุดทวินิยมต้องมีค่าเป็น 1 เช่น

11.001012 = 0.1100101 ´ 22
            0.0001012 = 0.101 ´ 2-2

เนื่องจากฐานมีค่าเป็น 2 เสมอ ดังนั้นข้อมูลที่จำเป็นต้องเก็บไว้ จึงมีเฉพาะ 0.1100101 ซึ่งกำหนดให้เรียกว่า significand และ 2 ซึ่งเป็นกำลัง (exponent) เท่านั้น และเนื่องด้วยจำนวนจริงมีทั้งจำนวนบวกและจำนวนลบ จึงต้องเก็บเครื่องหมายของจำนวนโดยใช้บิตเครื่องหมาย (sign bit) จำนวน 1 บิต และกำหนดให้ค่าของบิตที่เป็น 0 แทนจำนวนบวก และค่าของบิตที่เป็น 1 แทนจำนวนลบ นอกจากนี้แล้ว กำลัง เป็นจำนวนเต็มที่มีค่าไม่มากนัก และเป็นได้ทั้งจำนวนลบและบวก และการคำนวณที่เกี่ยวข้องกับตัวเลขยกกำลังต้องมีการปรับกำลัง และในการเปรียบเทียบค่าต้องมีการเปรียบเทียบกำลังด้วย จำนวนเต็มที่มีเครื่องหมายในระบบ 2’s complement ไม่เหมาะสมสำหรับกรณีนี้ จึงต้องมีวิธีในการแทนจำนวนเต็มชนิดมีเครื่องหมายของกำลังที่เหมาะสม ระบบนี้เรียกว่าระบบเกิน n (Excess–n Notation)


จำนวนเต็มที่ใช้แทนกำลังในระบบ Excess–n Notation

            ระบบ Excess-n (ระบบที่มีค่าเกิน n) เป็นระบบเลขฐานสองที่ใช้แทนจำนวนเต็มที่มีเครื่องหมายเพื่อความสะดวกในการเปรียบเทียบค่าและการดำเนินการทางคณิตศาสตร์ เนื่องจากเป็นจำนวนเต็มที่มีเครื่องหมาย ดังนั้นจึงต้องรู้จำนวนบิตที่ใช้ในการแทนค่า เพื่อจะได้สามารถคำนวณพิสัยของค่าที่สามารถทำการแปลงได้ เช่น หากกำหนดให้จำนวนบิตที่ใช้แทนค่าเป็น 3 บิต (m = 3) พิสัยของค่าคำนวณได้จากสูตร -2m-1 à 2m-1, หรือ -22 à 22 1 = -4 à 3
            พิสัยของค่าซึ่งมีทั้งจำนวนบวกและจำนวนลบ การเปรียบเทียบที่ทำได้สะดวกคือการนำค่าของ bit pattern มาเปรียบเทียบกันในลักษณะเป็นจำนวนเต็มที่ไม่มีเครื่องหมาย ซึ่งทำได้โดยการยกระดับค่าของตัวเลขขึ้นเพื่อตั้งจุดการทำงานของตัวเลขยกกำลังใหม่ ตัวเลขยกกำลังในระบบนี้จึงมีชื่อเรียกว่า bias exponent
            จำนวนเต็มที่ใช้ยกระดับการค่าของกำลังให้เป็นจำนวนบวกทั้งหมดเรียกว่า n ซึ่งหากกำหนดให้จำนวนบิตที่ใช้แทนกำลัง = m บิต สามารถคำนวณค่า n ได้จากสูตร n = 2m-1 และในกรณีที่ใช้จำนวนบิตแทนค่า 3 บิต, n มีค่าเป็น 4 ระบบเลขฐานสองที่ใช้แทน เรียกว่า Excess - 4 หรือระบบเกิน 4 ซึ่งมีความ สัมพันธ์เป็นไปตามตารางดังนี้


              จำนวนเต็ม                      จำนวนเต็มที่มีการ                          เลขฐานสองแทนกำลัง
            ที่ใช้แทนกำลัง                 กำหนดจุดทำงานใหม่                    ที่ตั้งจุดการทำงานใหม่แล้ว
              (exponent)                            (bias)                                     (bias exponent)
            ----------------                ------------------------                  ------------------------------
                    3                                3 + 4 = 7                                        1 1 1
                    2                                2 + 4 = 6                                        1 1 0
                    1                                1 + 4 = 5                                        1 0 1
                    0                                0 + 4 = 4                                        1 0 0
                   -1                               -1 + 4 = 3                                        0 1 1
                   -2                               -2 + 4 = 2                                        0 1 0
                   -3                               -3 + 4 = 1                                        0 0 1
                   -4                               -4 + 4 = 0                                        0 0 0
            ----------------                ------------------------                  ------------------------------
                                                                                                เลขฐานสองขนาด 3 บิต    
                                                                                                ในระบบ Excess - 4
รูปแบบของ Floating Point Number

จำนวนจริงตามมาตรฐาน IEEE 754 - Floating Point Number กำหนดให้มีการจัดเก็บข้อมูล 3 ส่วน เครื่องหมายของจำนวน 1 บิต โดย 0 แทนจำนวนบวก และ 1 แทนจำนวนลบ, กำลัง (exponent) เป็นจำนวนเต็มในระบบ Excess-n หรือ bias exponent, และ สัมประสิทธิ์ โดยเก็บเฉพาะตัวเลขหลังจุด เรียกว่า significand และกำหนดจำนวนบิตที่ใช้ในการจัดเก็บแต่ละส่วนดังนี้

            ชนิด                       Sign bit             Bias exponent            Significand
Single precision  (32 บิต)           1            8                          23                
Double precision (64 บิต)         1                        11                         52                 

ระบบเลขฐานสองที่ใช้แทนกำลังใน Single precision (float ในภาษา C) เป็น Excess-128 และ ระบบเลขฐานสองที่ใช้แทนกำลังใน Double precision (double ในภาษา C) เป็น Excess-1024
เนื่องจากระบบเลขฐานสองที่ใช้แทนจำนวนจริงมีจำนวนบิตมาก ทำให้ยากต่อการทำความเข้าใจ ดังนั้นจึงมีการกำหนดรูปแบบที่ง่ายสำหรับการเรียนการสอน เรียกว่า Microfloat ซึ่งมีขนาดเพียง 8 บิต และมีรูปแบบดังนี้

บิตที่      จำนวน       ความหมาย
-------    -------       --------------------------------------
   7           1           บิตเครื่องหมาย
6 4         3           bias exponent ในระบบ excess-4
3 0         4           significand

การแปลงจำนวนจริงฐานสิบเป็นเลขฐานสองในระบบ Microfloat

ขั้นตอนวิธี   การแปลงจำนวนจริง(ฐานสิบ) เป็นเลขฐานสองในระบบ Microfloat
ข้อมูลเข้า    จำนวนจริงฐานสิบ
ข้อมูลออก  เลขฐานสองในระบบ Microfloat ขนาด 8 บิต
begin
            เตรียมข้อมูล 1 ไบต์ สำหรับเก็บเลขฐานศองในระบบ Microfloat
            if  จำนวนจริงฐานสิบ < 0.0  then
                        บิตเครื่องหมาย = 0
            else
                        บิตเครื่องหมาย = 1
            end
เก็บบิตเครื่องหมายในบิตที่ 7
แปลงจำนวนจริงฐานสิบเป็นจำนวนจริงฐานสอง
            ทำให้จำนวนจริงฐานสองอยู่ในรูป Normal Form
            แปลงกำลังเป็นเลขฐานสองในระบบ Excess-4 เก็บในบิตที่ 6 - 4
            นำตัวเลขหลังจุดทวินิยม 4 หลักมาใช้เป็น significand เก็บในบิตที่ 3 0
            คืนค่าเลขฐานสองในระบบ Microfloat ให้แก่ผู้เรียก
end
การแปลงเลขฐานสองในระบบ Microfloat เป็นจำนวนจริงฐานสิบ

ขั้นตอนวิธี   การแปลงเลขฐานสองในระบบ Microfloat เป็นจำนวนจริง(ฐานสิบ)
ข้อมูลเข้า    เลขฐานสองในระบบ Microfloat ขนาด 8 บิต
ข้อมูลออก  จำนวนจริงฐานสิบ
begin
            บิตเครื่องหมาย = บิตที่ 7 ของ Microfloat
            bias_exponent = บิตที่ 6 – 4  ของ Microfloat
            significand = บิตที่ 3 – 0 ของ Microfloat
            แปลง bias_exponent เป็น exponent
            เติมจุดทวินิยมหน้า significand
            จัด .significand x 2exponent ให้อยู่ในรูปของจำนวนจริงฐานสองปกติ
            แปลงจำนวนจริงฐานสองเป็นจำนวนจริงฐานสิบ
            if  บิตเครื่องหมาย = 1  then
                        จำนวนจริง = จำนวนจริง x -1
            end
            คืนค่าจำนวนจริงฐานสิบให้แก่ผู้เรียก
end


ปัญหา - จงแปลง -0.02410 เป็นเลขฐานสองในระบบ Microfloat
จำนวนจริงฐานสิบเป้นจำนวนลบ บิตเครื่องหมาย = 1
แปลง -0.2410 เป็นจำนวนจริงฐานสอง » -0.0000012
-0.0000012 = -0.1 x 2-5
เนื่องจากกำลัง (exponent) ที่คำนวณได้มีค่าเป็น -5 ซึ่งไม่อยู่ในพิสัยของ excess-4

ดังนั้น -0.02410 จึงไม่สามารถจัดเก็บในระบบ Microfloat ได้



วันเสาร์ที่ 11 มกราคม พ.ศ. 2557


54360209  ภาณุเดช โสภิณฑ์



3. สำรวจอุปกรณ์ที่ตนเองมีอยู่ว่ารองรับรหัสอะไรบ้าง


PC > Windows 8

     -  Unicode
     -  UTF - 8

Reference : http://www.proz.com/forum/windows_operating_systems/174686-how_to_change_default_character_encoding_for_cyrillic.html


Telephone > Symbian


     -  UTF - 8

Reference : http://qt-project.org/forums/viewthread/1507