สมมติว่าเรากำลังทำงานบนระบบเรียลไทม์และฮาร์ดแวร์ซึ่งประกอบด้วยตัวนับความละเอียดสูงการมี RTC ส่งผลกระทบต่อความทันเวลาของระบบหรือไม่?
นี่มันบอกว่ามันช่วยลดการใช้ CPU และหน่วยความจำ แต่มีวิธีเปรียบเทียบความแตกต่างอย่างใด?
สมมติว่าเรากำลังทำงานบนระบบเรียลไทม์และฮาร์ดแวร์ซึ่งประกอบด้วยตัวนับความละเอียดสูงการมี RTC ส่งผลกระทบต่อความทันเวลาของระบบหรือไม่?
นี่มันบอกว่ามันช่วยลดการใช้ CPU และหน่วยความจำ แต่มีวิธีเปรียบเทียบความแตกต่างอย่างใด?
คำตอบ:
บทความที่คุณเชื่อมโยงนั้นสมบูรณ์และไร้สาระที่สุด "เรียลไทม์" ใน "นาฬิกาเรียลไทม์" (ตามที่ใช้เพื่ออ้างถึงประเภทของอุปกรณ์ hardward ที่อธิบายไว้ในบทความ) และ "เรียลไทม์" ใน "ระบบเรียลไทม์" เป็นคำที่แตกต่างกันโดยสิ้นเชิง อดีตหมายถึงการจัดเก็บเวลาในปฏิทินปัจจุบัน (โดยปกติจะมีการประมาณที่ไม่ดีมากเมื่อเทียบกับความแม่นยำสูงเช่นบทความที่อ้างถึงที่เชื่อมโยง) และจะก้าวหน้าโดยไม่ต้องใช้พลังงานจากภายนอกโดยใช้แบตเตอรี่ชนิดปุ่ม หลังหมายถึงการตอบสนองต่อเหตุการณ์ที่มีขอบเขตอย่างหนักต่อเวลาแฝงนับจากเวลาของเหตุการณ์จนถึงเวลาของการตอบสนอง
อีกสองสามบิตจากบทความเพื่อพิสูจน์ว่าควรถือว่าไม่น่าเชื่อถือ:
เกือบเล็กน้อย ของการสั่งซื้อ 1 วินาทีใน 100 ปี
1 วินาทีใน 100 ปีประมาณ 317 ppt (ใช่แล้วนั่นคือส่วนต่อล้านล้านล้านดอลลาร์ ) คุณไม่สามารถรับความเสถียรของนาฬิกาแบบนั้นได้ด้วยเทคโนโลยีนาฬิกาที่มีวางจำหน่ายทั่วไป แม้แต่การได้รับมันถึง 1 วินาทีต่อปีก็ยังต้องการ OCXO อย่างน้อยซึ่งต้องใช้กำลังสูงและควบคุมอุณหภูมิได้ตลอดเวลา ความคิดที่คุณจะได้รับจากอุปกรณ์ที่ใช้พลังงานจากแบตเตอรี่แบบเหรียญมีอายุการใช้งานยาวนานเป็นสิ่งที่น่าหัวเราะ
ระบบเวลาจริงเช่นนาฬิกาดิจิตอลระบบการเข้าร่วมกล้องดิจิตอล
สิ่งเหล่านี้ไม่เรียกว่าระบบเรียลไทม์
ระบบเวลาจริงเป็นสิ่งที่ตอบสนองต่อเหตุการณ์ / สิ่งเร้าภายในหรือภายนอกในเวลาที่กำหนดและเวลานั้นมักจะเป็นมิลลิวินาทีหรือไมโครวินาที มันต้องการตัวจับเวลาที่มีความแม่นยำขนาดเล็กมากกว่า RTC
และคำตอบสำหรับคำถามของคุณคือไม่มันจะไม่ส่งผลกระทบต่อเวลาที่แท้จริงของระบบ
หากระบบของคุณออฟไลน์หลังจากรีเซ็ตและมี RTC ระบบจะสามารถกำหนดวันที่ที่เหมาะสมลงในบันทึก บันทึกอาจมีขนาดใหญ่มากในกรณีที่คุณต้องตรวจสอบและมีการประทับเวลาผิดจะทำให้คุณผู้พัฒนาซอฟต์แวร์และลูกค้าของคุณคลั่งไคล้และในการตรวจสอบทั่วไปแทบเป็นไปไม่ได้
ง่ายหรือยากต่ำหรือสูงในบทความที่คุณอ้างถึงเป็นความคิดเห็นส่วนตัว มันเป็นเรื่องยากและค่าใช้จ่ายหากคุณไม่เคยทำมาก่อนและไม่มีข้อกำหนดของระบบที่ชัดเจนและคำชี้แจงของงาน และเป็นเรื่องง่ายและราคาถูกเมื่อคุณรู้ว่าคุณต้องการอะไรและเป็นอุปกรณ์ที่ดีที่สุดที่จะใช้
ในระบบส่วนใหญ่ข้อได้เปรียบที่แท้จริงของอุปกรณ์ต่อพ่วง RTC เหนือการรักษาเวลาอื่น ๆ คือการวัดเวลาของ RTC จะไม่ได้รับผลกระทบเมื่อส่วนที่เหลือของระบบเข้าสู่โหมดสลีปหรือในบางกรณีปิดการทำงานโดยสิ้นเชิง ในความเป็นจริงอุปกรณ์ต่อพ่วง RTC หลายตัวได้รับการออกแบบมาในรูปแบบที่จะทำให้อุปกรณ์เหล่านี้ใช้งานไม่ได้ตามวัตถุประสงค์ส่วนใหญ่นอกเหนือจากการบันทึกเวลาโดยประมาณของวัน อุปกรณ์ต่อพ่วง RTC จำนวนมาก (ตัวอย่างเช่นอาจเป็นเสียงส่วนใหญ่ แต่อาจไม่ใช่ซูเปอร์เมเจอร์) จำกัด เวลาในการรายงานโดยเพิ่มทีละหนึ่งวินาทีและอย่างน้อยในบางครั้งอาจต้องรอการซิงโครไนซ์เมื่อตั้งปลุกหรือ - บางกรณี - เพียงแค่พยายามอ่านเวลา ดังนั้นวิธีปกติในการใช้ RTC คือการคัดลอกค่าไปยังนาฬิกาที่มีประโยชน์มากขึ้นเมื่อเริ่มต้นตั้งค่าเมื่อใดก็ตามที่มีการตั้งค่า "Wall time"
และการอ่านที่ต่อเนื่องกันสี่ครั้งใด ๆ จะรับประกันได้ว่าจะมีการแข่งขันสองรายการนั้น (และถูกต้อง) เว้นแต่ว่าจะผ่านไปมากกว่า 1/32768 วินาทีระหว่างรอบแรกและครั้งสุดท้าย การตั้งค่าการเตือนอาจสร้างเหตุการณ์การปลุกแบบปลอม แต่ลำดับ:
ควรจัดการกับเคสขอบทั้งหมดอย่างง่ายดายเพียงพอที่จะเหมาะสำหรับการใช้งานโดยทั่วไป น่าเสียดายไม่ว่าด้วยเหตุผลใดอุปกรณ์ต่อพ่วง RTC ไม่เคยถูกออกแบบมา แต่อย่างใด แต่มีความซับซ้อนและมีประโยชน์น้อยกว่า
ดูเหมือนว่านี่จะเป็นปัญหาของคำศัพท์รอบการใช้คำว่า "เวลาจริง"
นาฬิกาเรียลไทม์เป็นอุปกรณ์สำหรับการจับเวลาที่เสถียร / ถูกต้อง (ภายในบางช่วงเวลา) เพื่อให้ระบบโฮสต์สามารถใช้เพื่อเชื่อมโยงเหตุการณ์ / การกระทำกับเวลาและวันที่ที่เกิดเหตุการณ์
คุณสามารถนึกถึงนาฬิกาแบบเรียลไทม์ซึ่งคล้ายกับอวัยวะภายในของนาฬิกาดิจิตอลที่เชื่อมต่อกับคอมพิวเตอร์ มันมีการอ้างอิงเวลาขับเคลื่อนอิสระที่ออกแบบมาเพื่อความมั่นคงและความถูกต้องสมเหตุสมผล เช่นเดียวกับนาฬิกาดิจิตอลจะไม่สูญเสียการติดตามของเวลาปัจจุบันเพียงเพราะคอมพิวเตอร์แม่ข่ายถูกปิด นาฬิกาเรียลไทม์ได้รับการติดตั้งกับคอมพิวเตอร์เป็นส่วนใหญ่เพื่อความสะดวกสบายเพื่อให้ผู้ใช้ไม่ต้องป้อนเวลาและวันที่ปัจจุบันใหม่ทุกครั้งที่ระบบเริ่มทำงานหรือทำการปรับเปลี่ยนบ่อย ๆ เพื่อชดเชยการดริฟท์
ทางเลือกอื่นสำหรับนาฬิกาแบบเรียลไทม์คือการใช้ซอฟต์แวร์และตัวจับเวลาภายในที่ขับเคลื่อนด้วยนาฬิการะบบ วิธีการดังกล่าวใช้การได้ (พีซี IBM ดั้งเดิมทำงานในลักษณะนั้น) แต่ไม่เสถียรเป็นพิเศษ มันจะสูญเสียการติดตามวันที่ / เวลา ณ จุดใด ๆ ที่ระบบปฏิบัติการปิดตัวลงแฮงค์หรือล้มเหลว
เมื่อคำว่า "เรียลไทม์" ถูกนำไปใช้กับระบบคอมพิวเตอร์หรือแอปพลิเคชันมันจะอธิบายระบบที่ตอบสนองต่อเหตุการณ์ในโลกแห่งความจริงในเวลาที่สั้นและกำหนดเวลาได้มาก - บ่อยครั้งเพียงไม่กี่มิลลิวินาที ของอินพุตพร้อมกัน ระบบแบบเรียลไทม์ถูกใช้สำหรับสิ่งต่าง ๆ เช่นการควบคุมเครื่องจักร - หุ่นยนต์จำลองและเกม แม้ว่าแอปพลิเคชันแบบเรียลไทม์อาจใช้ประโยชน์จากข้อมูลเวลาและวันที่ปัจจุบัน แต่แอปพลิเคชันไม่ได้เป็น "แบบเรียลไทม์" เพียงเพราะใช้ประโยชน์จากเวลาและวันที่ปัจจุบัน
ตามที่ระบุไว้ข้างต้นจุดประสงค์ของนาฬิกาเรียลไทม์คือการติดตามวันที่และเวลาปัจจุบันอย่างน่าเชื่อถือโดยทั่วไปเพียงแค่วินาที อันที่ดีจะมีการดริฟท์น้อยที่สุด โดยทั่วไปนาฬิกาเรียลไทม์จะไม่มีความละเอียดสูง นาฬิกาพื้นฐานของพวกเขามักจะทำงานค่อนข้างช้าเมื่อเทียบกับนาฬิกา CPU รุ่นใหม่ นี่คือการลดการใช้พลังงานให้น้อยที่สุด (ระบายออกจากแหล่งพลังงานอิสระ) เพื่อที่นาฬิกาจะยังคงรักษาเวลาได้อย่างน่าเชื่อถือหากคอมพิวเตอร์แม่ข่ายปิดอยู่เป็นระยะเวลานาน
ตัวจับเวลาความละเอียดสูงไม่เกี่ยวข้องกับเวลาหรือวันที่ปัจจุบัน โดยมีวัตถุประสงค์คือการวัดช่วงเวลาที่มีความแม่นยำบางอย่างอาจเป็นไมโครวินาทีหรือน้อยกว่า เพื่อให้บรรลุผลดังกล่าวจะต้องใช้นาฬิกาความถี่สูงที่เสถียรซึ่งโดยทั่วไปคือนาฬิการะบบคอมพิวเตอร์ ตัวนับความละเอียดสูงโดยทั่วไปจะไม่เกี่ยวข้องกับการล่องลอยในระยะเวลานานเนื่องจากวัตถุประสงค์ปกติคือการวัดเวลาสำหรับช่วงเวลาสั้น ๆ ตัวจับเวลาความละเอียดสูงไม่มีข้อกังวลเรื่องการใช้พลังงานเช่นเดียวกับนาฬิกาแบบเรียลไทม์เนื่องจากไม่มีงานทำในขณะที่โฮสต์คอมพิวเตอร์ปิดอยู่
ฉันคิดว่าเหตุผลหลักสำหรับนาฬิกาเรียลไทม์คือเวลาที่แม่นยำในบางช่วงเวลา นาฬิกาปกติมักจะถูกตัดแต่งด้วยตัวเก็บประจุและสามารถมีความคลาดเคลื่อนของความถี่ที่มากขึ้นตามปัจจัยที่หลากหลายซึ่งอาจอยู่นอกเหนือการควบคุมเช่นความจุ / ความต้านทานของวงจรจับเวลาของนาฬิกาที่ไม่ได้รับการปรับจูน ทำหน้าที่จุดประสงค์ในการต่อสู้เพื่อประสิทธิภาพรวมถึงมักจะมีตรรกะโปรแกรมที่สามารถแบ่งเวลาที่จะนำข้อผิดพลาดกลับมาได้อีกครั้ง
โดยปกติแล้ว RTC สามารถมีตัวจับเวลาและดูสุนัข ฯลฯ ควบคู่ไปกับมันให้การรับประกันหรือการสันนิษฐานที่ดีว่าในช่วงเวลาปกติที่แม่นยำซึ่งสามารถอยู่ในเฟสด้วยขั้นตอนต่าง ๆ ที่กำหนดหรือรหัสจะถูกดำเนินการ คุณไม่สามารถรับสิ่งนี้ได้อย่างง่ายดายด้วยนาฬิกาปกติ หรือคุณต้องระมัดระวังในการผลิตมากว่านาฬิกามีความแม่นยำ คุณสามารถเห็นสิ่งต่าง ๆ เช่นเสียงและสิ่งที่ไม่จำเป็นต้องใช้ rtc แทนนาฬิการะบบความเร็วสูง
สำหรับสิ่งที่ RTC หมายถึงฉันไม่สามารถพูดได้อย่างแน่นอน ฉันรู้ว่า Linux เป็นเครื่องมือที่แพร่หลายในโลกที่ฝังตัว แต่ฉันไม่แน่ใจว่ามันทำงานได้ดีสำหรับแอปพลิเคชันแบบเรียลไทม์ทั้งหมดอย่างไร มัลติเธรดสามารถทำให้เวลาในการทำงานไม่เป็นไปตามกำหนดเวลาอย่างไรก็ตามเมื่อฮาร์ดแวร์เกินความต้องการด้านประสิทธิภาพโซลูชันจำนวนมากจะทำงานได้ดีแม้ในแอพพลิเคชันแบบเรียลไทม์
จากนั้นก็มีแอปพลิเคชั่นที่สำคัญและมีประสิทธิภาพต่ำ สิ่งหนึ่งที่พึงประสงค์ที่นี่คือกำหนดขึ้นและมักจะแก้ปัญหาความซับซ้อนต่ำ ที่นี่ RTC สามารถใช้งานได้อย่างชัดเจน Linux อาจจัดให้มีการเข้าถึงพิเศษเพื่อขัดจังหวะควบคู่ไปกับมัน ดูเหมือนว่าฉันสำหรับกำหนดเวลาจริงที่คุณต้องการไม่เพียง rtc แต่ขัดจังหวะหรือ OS เข้าถึงพวกเขา
คุณจะต้องใช้นาฬิกาบอกเวลาแบบเรียลไทม์หากใช้การสื่อสารที่ปลอดภัยกับคอมพิวเตอร์เครื่องอื่นบนอินเทอร์เน็ต (ไม่ใช่ 100% จะต้องมี แต่ถ้าคุณไม่มีการอ้างอิงเวลาท้องถิ่นคุณต้องเชื่อใจสิ่งอื่นและคุณสามารถ ' ไม่เชื่อถือใบรับรองเว้นแต่คุณจะรู้วันที่)
ดังนั้นไม่คุณไม่จำเป็นต้องใช้ระบบ 'เรียลไทม์' ทั้งหมด อย่างไรก็ตามขึ้นอยู่กับแอปพลิเคชันของคุณคุณอาจต้องการ RTC เป็นวิธีที่ประหยัดพลังงานมากที่สุดในการรับการแก้ไขเวลาที่ดีหลังจากอยู่ในสถานะใช้พลังงานต่ำ