Cùng học VBLUNO - Phần 2: Tìm hiểu và so sánh khái niệm xung nhịp

Mô tả dự án: 

Tương tự như khi mua máy tính chúng ta thường chú ý đến xung nhịp (GHz) và RAM, việc quan tâm đến xung nhịp của một board mạch cũng là một điều hiển nhiên. Bài này ta cùng thí nghiệm xem xung nhịp và tốc độ xử lí của VBLUNO thế nào nha!

Xung nhịp là gì?

Xung nhịp là tốc độ mà vi xử lý thực hiện các câu lệnh trong 1 giây, thường được biểu diễn với đơn vị là tần suất (Hz). Tần suất càng cao thì các câu lệnh càng được xử lý nhanh chóng. Lấy nghịch đảo của tần suất (1/Hz) các bạn sẽ có được chu kỳ, tức là đơn vị thời gian nhỏ nhất mà vi xử lý có thể thực hiện được trên lý thuyết. Giả sử bạn có một board mạch có tần suất là 10Hz thì board mạch này sẽ xử lý 10 câu lệnh trong vòng 1 giây. Việc này đồng nghĩa với việc bạn không thể bắt board mạch này tạo 1 xung vuông ngắn hơn 0,1 giây (0.09 chẳng hạn) vì 1/0.09 ~ 11 vượt quá xung nhịp 10Hz.

Một điều quan trọng nữa là tốc độ xử lý còn phụ thuộc vào kiến trúc của vi xử lý và mục đích của board mạch. Ví dụ: để làm 1 phép nhân 2 số như 3x4 chẳng hạn, chip Intel 80286 cần đến 5 chu kỳ, trong khi chip đời sau Intel 80486 cần đúng 1 chu kỳ để làm điều này. Bài http://arduino.vn/bai-viet/254-bai-1-gioi-thieu-so-luoc-ve-intel-galileo có 1 phần khá lý thú so sánh xung nhịp giữa Intel và ARM để các bạn tham khảo. 

Thí nghiệm

Chúng ta sẽ so sánh hiệu năng tính toán của VBLUNO với 2 board nhìn tương tự là Arduino UNO và Arduino Zero bằng cách bắt chúng thực hiện 100k phép toán trong thuật toán Newton để tính giá trị của hằng số pi (3.1415...), và nhấp nháy LED mỗi 100 phép tính. 

Tên VBLUNO UNO ZERO
Hình
CHIP ARM Cortex M0 ATmega328P 32-bit ARM Cortex M0+
Xung 16 MHz 16 MHz 48 MHz

Code: (trích từ http://tronixstuff.com/2013/02/08/first-look-arduino-due/)

//
// Pi_2
//
// Steve Curd
// December 2012
//
// This program approximates pi utilizing the Newton's approximation.  It quickly
// converges on the first 5-6 digits of precision, but converges verrrry slowly
// after that.  For example, it takes over a million iterations to get to 7-8
// significant digits.
//
// I wrote this to evaluate the performance difference between the 8-bit Arduino Mega,
// and the 32-bit Arduino Due.
//

#define ITERATIONS 100000L    // number of iterations 
#define FLASH 1000            // blink LED every 1000 iterations

void setup()
{
	pinMode(13, OUTPUT);        // set the LED up to blink every 1000 iterations   Serial.begin(57600); }
}
void loop()
{
	unsigned long start, time;
	unsigned long niter = ITERATIONS;
	int LEDcounter = 0;
	boolean alternate = false;
	unsigned long i, count = 0;
	float x = 1.0;
	float temp, pi = 1.0;

	Serial.print("Beginning ");
	Serial.print(niter);
	Serial.println(" iterations...");
	Serial.println();
	start = millis();
	for ( i = 2; i < niter; i++)
	{
		x *= -1.0;
		pi += x / (2.0f * (float)i - 1.0f);
		if (LEDcounter++ > FLASH)
		{
			LEDcounter = 0;
			if (alternate)
			{
				digitalWrite(13, HIGH);
				alternate = false;
			}
			else
			{
				digitalWrite(13, LOW);
				alternate = true;
			}
			temp = 40000000.0 * pi;
		}
	}
	time = millis() - start;
	pi = pi * 4.0;

	Serial.print("# of trials = ");
	Serial.println(niter);
	Serial.print("Estimate of pi = ");
	Serial.println(pi, 10);
	Serial.print("Time: ");
	Serial.print(time);
	Serial.println(" ms");
	delay(10000);
}

Kết quả và thảo luận

  • Ta thấy UNO và VBLUNO có tốc độ tính toán ngang ngửa nhau (5556 với 5585 giây) mặc dù 1 bên là vi xử lý ARM và bên kia là vi điều khiển Atmel.
  • ZERO nhanh gấp 3 lần VBLUNO (5556/1948 ~ 3) mặc dù cùng họ ARM M0. Điều này có thể suy đoán là do VBLUNO có xung chậm gấp 3 lần ZERO (48/16 = 3).

Như vậy ta có thể kết luận rằng xung nhịp có vai trò quan trọng trong việc xử lý các câu lệnh. Tuy nhiên đây chưa là yếu tố quyết định. Bài tới chúng ta sẽ cùng tìm hiểu sâu hơn về phần cứng và độ tiêu thụ điện năng của VBLUNO.

lên
4 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Hot: Orange Pi Zero IoT đã ra lò!!!

Vậy là Raspberry Pi Zero W đã được lên kệ hơn 1 tháng. Và đúng như dự đoán, các bạn Trung Quốc đã nhanh chóng cho ra đời 1 sản phẩm nhái đúng chất Tàu xì để cạnh tranh với Raspberry Pi Foundation. Chúng ta không lạ gì với các thể loại Pi cam, chuối, mận, trong đó Orange Pi có lẽ là sản phẩm Pi nhái ưa thích nhất ở VN với giá thành hợp túi tiền người tiêu dùng. Gần đây họ cho ra đời một sản phẩm mới có tên là Orange Pi Zero IoT với giá 10 Mỹ cành với hy vọng chiếm thị phần của Pi Zero W vốn dĩ luôn khan hàng. Ta hãy cùng xem sản phẩm này có gì đặc biệt nha! 

lên
10 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Cho tui 1 dzé đi tuổi thơ - Cài đặt Retro Pie - Chơi game thùng với Raspberry Pi

Trong chúng ta hẳn ai cũng đã từng mê mẩn với các trò chơi điện tử console ở quán ngoài đầu ngõ. Hiện nay các thế hệ console đời mới XBOX, PS liên tục phát hàn các trò rất hay, nhưng đôi khi ta lại hoài niệm và muốn quay về tuổi thơ với cá trò kinh điển như Contra, Mario, KKND. Bài này tui sẽ hướng dẫn các bạn cài hệ điều hành Retro Pie giả lập các game đời xa xưa. (Dịch từ https://github.com/retropie/retropie-setup/wiki/First-Installation)

lên
16 thành viên đã đánh giá bài viết này hữu ích.